映射類型
現(xiàn)有類型如下
interface Person {
name: string;
age: number;
}
一個常見的任務是將一個已知的類型每個屬性都變?yōu)榭蛇x的漏健,或者是想要某一類型的只讀版本如下:
interface PersonPartial {
name?: string;
age?: number;
}
interface PersonReadonly {
readonly name: string;
readonly age: number;
}
TypeScript提供了從舊類型中創(chuàng)建新類型的一種方式 — 映射類型千劈。 在映射類型里盘榨,新類型以相同的形式去轉(zhuǎn)換舊類型里每個屬性血当。 例如杀餐,你可以令每個屬性成為 readonly類型或可選的广恢。 下面是一些例子:
type Readonly<T> = {
readonly [P in keyof T]: T[P];
}
type Partial<T> = {
[P in keyof T]?: T[P];
}
使用的時候像這樣
type PersonPartial = Partial<Person>;
type ReadonlyPerson = Readonly<Person>;
這樣我們就可以簡單的轉(zhuǎn)換成某個特定需求的類型了