book icon indicating copy to clipboard operation
book copied to clipboard

「Required<T>」のページでRequiredの中で何をやっているかの解説を追加する(`-?`mapping modifierとoptional propertyについて説明する)

Open monkey999por opened this issue 2 years ago • 1 comments

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 avatar Feb 26 '23 08:02 monkey999por

@monkey999por ご質問ありがとうございます😌

-はmapping modifierと言われるもので、 オプション修飾子 (optional property)?と組み合わせた-?は、Tのオプショナルなプロパティをオプショナルじゃなくする効果があります。

-は「差し引く」の意味で、?は「オプション」の意味です。なので、2つ合わせて「オプションさを差し引く」ということになり、つまり「必須にする」という意味になります。

関連文書

suin avatar Feb 26 '23 08:02 suin