book
book copied to clipboard
「Required<T>」のページでRequiredの中で何をやっているかの解説を追加する(`-?`mapping modifierとoptional propertyについて説明する)
Required<T>
について型定義ファイル(lib.es5.d.ts)を見たところ、以下のように-?
なるキーワード(?)がついていますが、これはどういった機能でしょうか?
type Required<T> = {
[P in keyof T]-?: T[P];
};
関連ページ: https://typescriptbook.jp/reference/type-reuse/utility-types/required
@monkey999por ご質問ありがとうございます😌
-
はmapping modifierと言われるもので、 オプション修飾子 (optional property)?
と組み合わせた-?
は、T
のオプショナルなプロパティをオプショナルじゃなくする効果があります。
-
は「差し引く」の意味で、?
は「オプション」の意味です。なので、2つ合わせて「オプションさを差し引く」ということになり、つまり「必須にする」という意味になります。