Record
Record的內(nèi)部定義宾茂,接收兩個(gè)泛型參數(shù)瓷马;Record后面的泛型就是對(duì)象鍵和值的類型。
Record 主要的作用是用來(lái)定義對(duì)象
const obj: Record<string, string> = {"a": '1'};
或者復(fù)雜一點(diǎn)的
interface Person {
name: string;
age: number;
}
const obj: Record<string, Person> = {"a": { name: 'dj', age: 12 }};
可以看到跨晴,Record 可以很好的幫我們定義對(duì)象類型
Partial
生成一個(gè)新類型欧聘,該類型與原類型擁有相同的屬性,但是所有屬性皆為可選項(xiàng)
interface Foo {
name: string
age: number
}
type Bar = Partial<Foo>
相當(dāng)于
type Bar = {
name?: string
age?: number
}
Required
生成一個(gè)新類型端盆,該類型與原類型擁有相同的屬性怀骤,但是所有屬性皆為必選項(xiàng)
interface Foo {
name?: string
age: number
}
type Bar = Required<Foo>
相當(dāng)于
type Bar = {
name: string
age: number
}
Readonly
生成一個(gè)新類型,該類型與原類型擁有相同的屬性焕妙,但是所有屬性都是只讀的
interface Foo {
name: string
age: number
}
type Bar = Readonly<Foo>
相當(dāng)于
type Bar = {
readonly name: string
readonly age: number
}