エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント20件
- 注目コメント
- 新着コメント
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
空でない配列を型で表現する正しい方法【TypeScript】
{ 0: T }という型は「0番目の要素がT型であり、必ず存在する」ことを表します。 配列はオブジェクトでも... { 0: T }という型は「0番目の要素がT型であり、必ず存在する」ことを表します。 配列はオブジェクトでもあり、オブジェクトのプロパティ名に数値も使えるというTypeScriptの言語仕様を巧みに活かした型定義です。 しかしこの型定義ではスプレッド構文を使うと「空でない」という情報が型から消えてしまいます。 例えば次のように配列のシャローコピーを作ると型から{ 0: T }の部分が消えます。 type NonEmptyArray<T> = T[] & { 0: T } // ↓string[]型になる😥 NonEmptyArray<string>型にはならない type Spreaded = [...NonEmptyArray<string>] const array: NonEmptyArray<string> = ['a', 'b'] // ↓型エラーになってしまう😥 [...a

















2023/08/02 リンク