並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 34 件 / 34件

新着順 人気順

typescript nullable function typeの検索結果1 - 34 件 / 34件

  • メルカリ Shops での NestJS を使った GraphQL Server の実装 | メルカリエンジニアリング

    ソウゾウの Software Engineer をやっています、@mookjp です。 8/10 の記事「メルカリShopsの技術スタックと、その選定理由」では、メルカリ Shops のアーキテクチャについて、その全体像を紹介しました。 この記事では、そのうちの BFF(Backend for Frontend) レイヤとして用意した GraphQL サーバについて、NestJS を使った実装例を交えて紹介します。 GraphQL とは GraphQL サーバ周辺の構成 NestJS とは GraphQL Module NestJS で Code First なスキーマ定義をする Object types の定義 Query と Mutation の定義 GraphQL スキーマの生成 スキーマの Breaking Change (破壊的変更)を防ぐ DataLoader を使って Bat

      メルカリ Shops での NestJS を使った GraphQL Server の実装 | メルカリエンジニアリング
    • こんなに辛いことになるから、最初にがんばろう / 辛い開発状況をどうにかするためにやった13のこと

      こんにちは!sugitaniと申します。 これまで有名芸能人と通話ができる(かもしれない)ライブ配信アプリとか、オリジナルマンガの配信サービスとか、コメントが横に流れるライブ配信システムとかを作ってきました。(SUGARは今も作業してます) 最近ご縁がありましてUUUMの子会社で、簡単に有料フォロワー向けの投稿が行えるFOLLOW MEを主に開発していて、NFTでデジタルトレーディングカード(※)を売り買いすることができるHABETをIndieSquare社さんと協業で運営しているNUNW株式会社(5月にFOROから社名変更)に入社し半年くらい経っています。最近CTOに任命していただきました! ※NFTについては思うことがある開発者の皆様が多いと思っていますが、自分がどう思っているかは後述します 少し前に「スタートアップがまともなわけ無いから入るな」というインタビュー記事を書いて頂いたんで

        こんなに辛いことになるから、最初にがんばろう / 辛い開発状況をどうにかするためにやった13のこと
      • TypeScript の型生成における OpenAPI Generator のハマりどころ - READYFOR Tech Blog

        こんにちは。READYFOR でフロントエンドエンジニアとして働いている菅原(@kotarella1110)です! 嬉しいことに、READYFOR のプロダクト開発組織は急拡大中で、正社員の人数は 2019年7月時点では8名でしたが2021年4月現在は29名になりました 🎉 その反面、組織が大きくなってくると「我々はどこに向かってるんだっけ?」「あの人、最近はどんなことに取り組んでいるんだろう?」といった「見えないこと」が増えてきます🤔 この「見えないこと」を減らすために、READYFOR では毎月「プロダクト開発本部会」を開催しています。 プロダクト開発本部会では、必要な全体周知(組織やプロダクトの方針等)や月替わりプレゼンテーションを行っています。 本記事はこのプロダクト開発本部会の月替わりプレゼンテーションで発表した内容になります。 はじめに 以前 READYFOR で初主催とな

          TypeScript の型生成における OpenAPI Generator のハマりどころ - READYFOR Tech Blog
        • Hono + Deno で住所分割APIサーバーを2日で爆速実装する - inSmartBank

          はじめに サーバーサイドエンジニアの mokuo です。普段はカード決済やあとばらいチャージに関連する機能の開発や運用を行っております。 本記事でお話すること 日本の住所を都道府県、市区町村、丁目番地、それ以降などに分割する方法の検討から技術選定、実際に動いているコード(ほぼそのまま)をお見せします。 想定読者 サーバーサイドエンジニアを主な読者として想定しています。 日本の住所を分割する機能の実装方法を知りたい方 Deno*1や Hono*2 の採用事例、実装例を知りたい方 はじめに 本記事でお話すること 想定読者 🤔 背景と課題 🎯 住所分割の方針検討 ✂️ 住所分割方法: normalize-japanese-addresses に決定 🧩 npm ライブラリの組み込み: Hono + Deno に決定 🏠️ インフラ構成: ECS + EFS に決定 💪 2日で実装する

            Hono + Deno で住所分割APIサーバーを2日で爆速実装する - inSmartBank
          • フロントエンドテストの正解って?FAANSにおけるテスト戦略の振り返りとこれから - ZOZO TECH BLOG

            はじめに こんにちは、FAANS部フロントエンドブロックでWeb開発をしている平舘です。 Webフロントエンドのテスト戦略って、結局どうすればいいのか、よくわからなくないですか? この記事では、FAANS Webアプリケーション開発におけるテスト実装の歴史を「リリース期」「急成長期」「現在」という3つの開発フェーズに分けて振り返ります。プロダクト立ち上げからのリアルな現場感とともに振り返りつつ、主にテスト配分についてチームで議論しながらプロダクトへ反映していった歴史のレポートになっています。みなさんのテスト戦略の見直しや実践のヒントになれば幸いです。 目次 はじめに 目次 背景・課題 この記事で語らないこと 前提:FAANSについて 開発の歴史とテスト戦略の変遷 フェーズ1. 怒涛のリリース期 起きたこと (1) 関心の中心は、「何をつくるか」 (2) こなれない実装 (3) jest-d

              フロントエンドテストの正解って?FAANSにおけるテスト戦略の振り返りとこれから - ZOZO TECH BLOG
            • 外からやってくる値から TypeScript の型を守るライブラリ・ツールまとめ - Mobile Factory Tech Blog

              こんにちは、新卒エンジニアの id:d-kimuson です 先日 type-predicates-generator という型定義からユーザー定義型ガード・アサーション関数を自動生成するツールをリリースして紹介記事を書いたのですが、感想とかを眺めていたら同じく外部から来た値に安全な型付けをするためのライブラリやツールの情報をいくつも観測しました この辺りのランタイムチェックライブラリの情報ってあまりまとまっていない印象で自分が知らないものもいくつかあったので、調べつつ簡単にまとめられたらなと思ってこのエントリを書きました 外部からやってきた値を型安全にするにはざっくりと 型生成によるアプローチ ランタイムチェック用の独自型を書かせるアプローチ 型情報からランタイムチェック関数を自動生成するアプローチ の 3 つのアプローチがあると思うので、それぞれのアプローチごとに紹介します ① 型定義

                外からやってくる値から TypeScript の型を守るライブラリ・ツールまとめ - Mobile Factory Tech Blog
              • neue cc - Claudia - Anthropic ClaudeのC# SDKと現代的なC#によるウェブAPIクライアントの作り方

                AI関連、競合は現れども、性能的にやはりOpenAI一強なのかなぁというところに現れたAnthropic Claude 3は、確かに明らかに性能がいい、GPT-4を凌駕している……!というわけで大いに気に入った(ついでに最近のOpenAIのムーブが気に入らない)ので、C#で使い倒していきたい!そこで、まずはSDKがないので非公式SDKを作りました。こないだまでプレビュー版を流していたのですが、今回v1.0.0として出します。ライブラリ名は、Claudeだから、Claudiaです!.NET全般で使えるのと、Unity(Runtime/Editor双方)でも動作確認をしているので、アイディア次第で色々活用できると思います。 GitHub - Cysharp/Claudia 今回のSDKを作るにあたっての設計指針の一番目は、公式のPython SDKやTypeScript SDKと限りなく似せる

                • Moving off of TypeScript

                  We Love You, TypeScriptFor nearly five years now, Motion has operated in a large TypeScript monorepo. At its peak, it was roughly ~2.5 million lines of code after excluding comments, node_modules, etc. To manage this, we used Vercel’s rather excellent Turborepo build system. This is not a blog post hating on TypeScript — quite the opposite! Motion would likely not even have survived until today wi

                    Moving off of TypeScript
                  • TypeScript使いの憂鬱:never型はプロパティを持つか | 雑記帳

                    never型とプロパティアクセス TypeScriptにはneverという型があります。先日も記事にしましたが、簡単に言うとこれは「値を持たない型」です。 never型は、あらゆる型に対してその部分型として振る舞います。例えば、never が number の部分型であることは次のコードでわかります: type T<U extends number> = {}; type A = T<string>; // stringはnumberの部分型ではないのでエラー type B = T<never>; // neverはnumberの部分型なのでコンパイルが通る さて、部分型関係と、「その型の式に対してできる操作の集合」の関係について考えましょう。あまり面白い例を思いつかなかったのでアレですが、次の型を考えます: type UserInfo = { name: string }; type D

                    • Rubyの型アノテーションの現状についていくつか思うこと(翻訳)|TechRacho by BPS株式会社

                      概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: A few words on Ruby's type annotations state 原文公開日: 2023/05/05 原著者: zverok 参考: 週刊Railsウォッチ20230531: Rubyの型アノテーションの現状についていくつか思うこと ...を軍の訓練施設で書いているうちに、ついつい5,000ワードになってしまった。 今これをスマホで書いている、それもウクライナ軍の訓練施設にある、200人を越える戦友たちと過ごしている兵舎で。もっぱら訓練と訓練の合間の短い時間(たいてい夜と日曜だが)をこの作業に当てている。 率直に言うと、軍に入隊して以来、まさかRubyについて何か書く時間やインスピレーションを得られるとは思ってもみなかったが、今ここでこうして書いている。 最近、Redditの/r/rubyで興味深い長大な議

                        Rubyの型アノテーションの現状についていくつか思うこと(翻訳)|TechRacho by BPS株式会社
                      • openai/gpt-oss-120b · Hugging Face

                        ","eos_token":"<|return|>","pad_token":"<|endoftext|>"},"chat_template_jinja":"{#-\n In addition to the normal inputs of `messages` and `tools`, this template also accepts the\n following kwargs:\n - \"builtin_tools\": A list, can contain \"browser\" and/or \"python\".\n - \"model_identity\": A string that optionally describes the model identity.\n - \"reasoning_effort\": A string that describes t

                          openai/gpt-oss-120b · Hugging Face
                        • Announcing TypeScript 4.8 - TypeScript

                          Today we’re excited to announce the release of TypeScript 4.8! If you’re not yet familiar with TypeScript, it’s a language that builds on JavaScript and adds syntax for types. These types let you put your expectations and assumptions into your code, and those assumptions can then be checked by the TypeScript type-checker. This checking can help avoid typos, calling uninitialized values, mixing up

                            Announcing TypeScript 4.8 - TypeScript
                          • TypeScript一人カレンダー 2022 目次と索引

                            こんにちは、クレスウェア株式会社の奥野賢太郎 (@okunokentaro) です。本記事は『TypeScript 一人 Advent Calendar 2022』(TypeScript一人カレンダー) の目次と索引ページです。 本アドベントカレンダー内の各記事では、2022年12月、TypeScript 4.9の時点で解説しています。本アドベントカレンダーのすべての記事は、TypeScript初心者を脱し始めてもっと活用していきたいと願う読者層に向けていますので、最低限の前提は省略して記述しています。 目次 第1部 Conditional Types 1日目 ReturnType<T> Utility Types ReturnType<T> どんなときに便利? 例1 例2 注意点 2日目 Awaited<T> Awaited<T> どんなときに便利? 例1 例2 3日目 inferと実例

                              TypeScript一人カレンダー 2022 目次と索引
                            • Announcing TypeScript 4.8 Beta - TypeScript

                              Today we’re announcing our beta release of TypeScript 4.8! To get started using the beta, you can get it through NuGet, or- use npm with the following command: npm install -D typescript@beta You can also get editor support by Downloading for Visual Studio 2022/2019 Following directions for Visual Studio Code. Here’s a quick list of what’s new in TypeScript 4.8! Improved Intersection Reduction, Uni

                                Announcing TypeScript 4.8 Beta - TypeScript
                              • April 2023 (version 1.78)

                                Update 1.78.1: The update addresses this security issue. Update 1.78.2: The update addresses these issues. Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap Welcome to the April 2023 release of Visual Studio Code. There are many updates in this version that we hope you'll like, some of the key highlights include: Accessibility improvements - Better scre

                                  April 2023 (version 1.78)
                                • Oxlint Type-Aware Preview

                                  This post announces the technical preview of type-aware linting. For the latest alpha release with improved stability, configurability, and rule coverage, see the Type-Aware Linting Alpha announcement. We're thrilled to announce type-aware linting in oxlint! The long-awaited no-floating-promises and related rules are here. This preview release aims to engage with the community for collaboration an

                                    Oxlint Type-Aware Preview
                                  • Relay v18 の throwOnFieldError と GraphQL Nullability

                                    Relay v18.0.0 にて @throwOnFieldError や @catch, @semanticNonNull といったエラーハンドリングに関連する Directive が追加された。 これらの Directive の意味と活用方法をこのエントリで解説していく。 なお、今回のエントリは自分が書いた以下エントリの続編としての意味合いも含んでいる。 Relay v18 で追加された Client Side DirectiveGraphQL Erorrs をコンポーネントから扱えるRelay v18 で追加された @throwOnFieldError および @catch はクライアントサイド, すなわち GraphQL オペレーション側に記述する Directive である。 以降の解説のため、次の GraphQL クエリを題材とする。 query { book { title

                                      Relay v18 の throwOnFieldError と GraphQL Nullability
                                    • Rails: Inertia.jsでRailsのJavaScript開発にシンプルさを取り戻そう(翻訳)|TechRacho by BPS株式会社

                                      はじめに フロントエンド開発周りの騒ぎは、何年経っても一向に止みそうにありません。どこの開発会社を覗いてみても、目にするのは同じような悲しい出来事ばかりです。優秀な開発者たちが必要もないツールの山で溺れそうになりながら問題を解決しようと悪戦苦闘してます。しかもそれは、誰かさんが売り込んできたソリューションを導入するまでは起きていなかったはずの問題なのです。 私もこの業界に長くいるので、パターンはあらかた心得ています。まず、React、Vue、Angular、Svelteの中からお好きなものをお選びくださいと持ちかけて、エコシステムを分断します。そして、こちらの頭がぼうっとするほど選択肢を増やしに増やしまくります。そして最後に、元の問題より高くつく「専門家によるソリューション」にたどりつくという流れです。 Railsコミュニティはまさにその実例です。DHHは長年の間複雑さと戦い、「No Bu

                                        Rails: Inertia.jsでRailsのJavaScript開発にシンプルさを取り戻そう(翻訳)|TechRacho by BPS株式会社
                                      • Announcing TypeScript 4.8 RC - TypeScript

                                        Today we’re excited to announce our Release Candidate (RC) of TypeScript 4.8. Between now and the stable release of TypeScript 4.8, we expect no further changes apart from critical bug fixes. To get started using the RC, you can get it through NuGet, or use npm with the following command: npm install -D typescript@rc You can also get editor support by Downloading for Visual Studio 2022/2019 Follow

                                          Announcing TypeScript 4.8 RC - TypeScript
                                        • openai/gpt-oss-20b · Hugging Face

                                          ","eos_token":"<|return|>","pad_token":"<|endoftext|>"},"chat_template_jinja":"{#-\n In addition to the normal inputs of `messages` and `tools`, this template also accepts the\n following kwargs:\n - \"builtin_tools\": A list, can contain \"browser\" and/or \"python\".\n - \"model_identity\": A string that optionally describes the model identity.\n - \"reasoning_effort\": A string that describes t

                                            openai/gpt-oss-20b · Hugging Face
                                          • October 2024 (version 1.95)

                                            GitHub Pull Requests Version 0.100.0 of the GitHub Pull Requests extension adds Copilot integration: Use the @githubpr chat participant in the Chat view to search for issues, summarize issues/prs, and suggest fixes for issues. @githubpr uses a number of Language Model tools to accomplish this. There's also a new Notifications view that shows GitHub notifications, with an action to prioritize them

                                              October 2024 (version 1.95)
                                            • Dart/Flutterのnull safety対応ベストプラクティス

                                              Photo by Nick Fewings on UnsplashDartは、2021年3月リリースのバージョン2.12にてnull safety対応されました。同時期にFlutter 2.0もリリースされ、それにDart 2.12が同梱されました(2021年12月現在の最新はFlutter 2.8.1/Dart 2.15.1)。 そこからしばらく経ちましたが、自分が書いてきた経験や巷のコード眺めて感じたことを踏まえて、ベターなnull safetyの扱いについて書いていきます。 前提として、null safety を有効にするには、 pubspec.yaml にて以下のように指定する必要があります。 environment: sdk: ">=2.12.0 <3.0.0" // 最低でも2.12.0以上下限は、可能な範囲上げておくと最新の言語機能を使えて良いです。例えばFlutter st

                                                Dart/Flutterのnull safety対応ベストプラクティス
                                              • Announcing typescript-eslint v6 | typescript-eslint

                                                typescript-eslint is the tooling that enables standard JavaScript tools such as ESLint and Prettier to support TypeScript code. We've been working on a set of breaking changes and general features that we're excited to get released! 🎉 We'd previously blogged about v6 in Announcing typescript-eslint v6 Beta. This blog post contains much of the same information as that one, but updated for changes

                                                  Announcing typescript-eslint v6 | typescript-eslint
                                                • Zodをベースとしたドメインモデルと入出力モデルの作成

                                                  はじめに Zodは、TypeScript用のスキーマ定義とバリデーションのためのライブラリです。 tRPCの入出力のバリデーションでもよく使用されています。 今回、tRPCを使用する際にドメインモデルの作成にZodのスキーマを利用します。 また、レイヤードアーキテクチャ等のPresentation層 ↔︎ UseCase層 ↔︎ Domain層 の各レイヤーでスキーマを派生させていくことで、入出力モデルをより低コストに定義する方法について記載します。 実装について 今回話を進めていくにあたって、一般的なWebサービスにあるUserのような概念を用いていきます。 まず、全体像としてはこちらの図のようになっています。 Domain層に定義されているEntityのスキーマから派生して、UseCaseの入出力になり、さらにそれらがPresentationでさらに加工されAPIなどの入出力になります

                                                    Zodをベースとしたドメインモデルと入出力モデルの作成
                                                  • (翻訳) Kotlinでの型付きエラー処理 - /var/log/jsoizo

                                                    この記事は以下のブログの翻訳記事で、著者の許諾のもと翻訳しています。翻訳過程で機械翻訳を活用しており、原典と翻訳を十分に照らし合わせて内容が正しいことを確認しておりますが、細かいニュアンスなどが気になる場合は原典をご確認ください。また、誤訳などあればtwitterにてご連絡いただけたら修正いたします。 medium.com 目次 目次 イントロ 例外(Exceptions) 型付きエラー処理(Typed Error Handling) 比較研究 実験結果 6位: 早期returnなしのsealed classマッチング 5位: Either<L, R> のflatMapチェーン 4位: 例外と再スロー(rethrow) 3位: 早期returnありのsealed classマッチング 2位: Arrowの either { } ビルダー 1位: Arrowの context(Raise<E

                                                      (翻訳) Kotlinでの型付きエラー処理 - /var/log/jsoizo
                                                    • The road to Dart 3: A fully sound, null safe language

                                                      Over the last four years, we’ve evolved Dart into a fast, portable, and modern language. Our next release, Dart 3, completes the journey to a fully sound null safe language. As the last step of that journey, we’re removing several historical Dart language and SDK artifacts, including removing support for running without sound null safety. This makes Dart easier to learn, and enables us to evolve t

                                                        The road to Dart 3: A fully sound, null safe language
                                                      • Does OLAP need an ORM?

                                                        TL;DR · ORMs have proven to be useful for many developers in the OLTP/transactional stack (Postgres, MySQL, etc). · OLAP/analytical databases like ClickHouse could potentially benefit from ORM abstractions. · Existing transactional ORMs probably shouldn’t be extended to OLAP due to fundamental differences in semantic meaning between OLTP and OLAP. · Moose OLAP (part of MooseStack) is an open sourc

                                                          Does OLAP need an ORM?
                                                        • PHP8.1 の新機能について語り合う・後編【PHP TechCafe イベントレポート】 - RAKUS Developers Blog | ラクス エンジニアブログ

                                                          弊社で毎月開催し、PHPエンジニアの間で好評いただいているPHP TechCafe。2021年8月のイベントでは社外でご活躍されているPHPエンジニアにもご参加いただいて「PHP8.1の新機能」について語り合いました。 rakus.connpass.com PHP8.1の新機能は8.0に比べれば少ないとはいえ、順番に追いかけてみると思ったより大きなボリュームになったためイベント内容を2回に分けてレポートします。今回は後編として後半の半分をご紹介します。 前編はこちら。 tech-blog.rakus.co.jp PHP8.1 新機能について Pure intersection Types 他の言語ではあまりない機能 New never type 静的解析などで役立つ期待あり New array_is_list function ネーミングに関する議論 Final class constan

                                                            PHP8.1 の新機能について語り合う・後編【PHP TechCafe イベントレポート】 - RAKUS Developers Blog | ラクス エンジニアブログ
                                                          • React + TypeScript に入門したので基本をまとめてみた | iret.media

                                                            最近になって React + TypeScript に入門したので、自分へのメモがてら、基本的なことをまとめてみました。 前提 TypeScript 初心者です。間違いや違和感等々ありましたらコメントで教えていただけると助かります。 JavaScript・React はある程度理解していることが前提です。 TypeScript・React の環境構築やtsconfig.jsonの設定には触れません。 TypeScipt の基礎 「明示的な型定義」と「型推論」 TypeScript の型定義には明示的な型定義と型推論があります。 明示的な型定義は人間が型を指定するのに対し、型推論は TypeScript がいい感じに型を推論してくれます。 実際のコーディングでは型推論を使いつつ、必要な時だけ明示的な型定義をすればいいと思いますが、この記事では型の理解を手助けするために明示的な型定義を使用して

                                                              React + TypeScript に入門したので基本をまとめてみた | iret.media
                                                            • James Shore: Testing Without Mocks: A Pattern Language

                                                              Automated tests are important. Without them, programmers waste a huge amount of time manually checking and fixing their code. Unfortunately, many automated tests also waste a huge amount of time. The easy, obvious way to write tests is to make broad tests that are automated versions of manual tests. But they’re flaky and slow. Folks in the know use mocks and spies (I say “mocks” for short in this

                                                              • GTF :: Why Haskell?

                                                                “Impractical”, “academic”, “niche”. These are a few of the reactions I get when someone discovers that my favourite programming language is Haskell, and not only my favourite in some sort of intellectually-masturbatory way, but favourite for building things, real things, mostly involving web servers. Hobby projects would be one thing, but it gets worse: I have actual teams at Converge working in H

                                                                • DavidAU/OpenAi-GPT-oss-20b-abliterated-uncensored-NEO-Imatrix-gguf · Hugging Face

                                                                  Specialized uncensored/abliterated quants for new OpenAI 20B MOE - Mixture of Experts Model at 80+ T/S. See settings and special instructions for using abliterated models below. NEW! - HERETIC, uncensored version is here: [ https://huggingface.co/DavidAU/OpenAi-GPT-oss-20b-HERETIC-uncensored-NEO-Imatrix-gguf ] These are NEO,Horror, NEOCODE Imatrix GGUFs, imatrix datasets by DavidAU. NEO, Horror an

                                                                    DavidAU/OpenAi-GPT-oss-20b-abliterated-uncensored-NEO-Imatrix-gguf · Hugging Face
                                                                  • never型があると便利か(言語処理系実装者の観点から) | 雑記帳

                                                                    TypeScriptをはじめとするいくつかのプログラミング言語には、never型という型がある。この型は典型的には「制御を返さない関数」の返り値として使われる: function f(x: string): never { console.error(x); throw new Error(); } never型は型システム的には「値を持たない型」「任意の型の部分型」として特徴づけられる。 他のプログラミング言語、例えば私が作っているLunarMLにもnever型があると便利だろうか? 前提:部分型はゼロコストで変換できて欲しい これは私の意見だが、部分型から上位型へはゼロコストで変換できて欲しい。例えば Sub <: Super という関係があった時に、Sub 型の値をゼロコストで Super 型へ変換できて欲しいのはもちろん、関数型についても A -> Sub から A -> Supe

                                                                    • NonNullable<T>と実例 assertExists() / TypeScript一人カレンダー

                                                                      こんにちは、クレスウェア株式会社の奥野賢太郎 (@okunokentaro) です。本記事はTypeScript 一人 Advent Calendar 2022の17日目です。昨日は『intrinsicとは そしてUppercase<T>』を紹介しました。 NonNullable<T> TypeScriptでは、Null- and undefined-aware typesという機構があります。これはTypeScript 2.0にて--strictNullChecksオプションと同時に実装され当時驚きを集めました。それまではstringやnumberといった基礎的な型は検証できても、undefinedやnullのリスクについては従来のECMAScriptを書く場合と変わらなかったためです。4.9である現在はこのエピソードはただの昔話であり、TypeScriptでundefinedやnull

                                                                        NonNullable<T>と実例 assertExists() / TypeScript一人カレンダー
                                                                      1