Record<K, T>
Typescript とはどういう意味ですか?
Typescript 2.1はRecord
タイプを導入し、例でそれを説明しました:
// For every properties K of type T, transform it to U function mapObject<K extends string, T, U>(obj: Record<K, T>, f: (x: T) => U): Record<K, U>
また、[ Advanced Types]ページではRecord
、マップされたタイプの見出しの下に、その定義のように見えるもので、、、およびの横Readonly
に言及しています。Partial
Pick
type Record<K extends string, T> = { [P in K]: T; }
Readonly、Partial、Pickは準同型ですが、Recordは同型ではありません。Recordが準同型ではないことの1つの手掛かりは、プロパティをコピーするために入力タイプをとらないことです。
type ThreeStringProps = Record<'prop1' | 'prop2' | 'prop3', string>
以上です。上記の引用の他にRecord
、typescriptlang.orgでの言及は他にありません。
ご質問
誰かが何かを簡単に定義できますか
Record
?で
Record<K,T>
、単に「このオブジェクトのすべてのプロパティが型を持っているだろうと言っての道T
」?いくつかの目的があるので、おそらくすべてのプロパティではK
ありません...K
ジェネリックは、オブジェクトに追加されていない追加のキーを禁止しますかK
、それとも許可し、プロパティが変換されていないことを示すだけT
ですか?与えられた例で:
type ThreeStringProps = Record<'prop1' | 'prop2' | 'prop3', string>
これとまったく同じですか?:
type ThreeStringProps = {prop1: string, prop2: string, prop3: string}