美文网首页
Typescript - 映射类型

Typescript - 映射类型

作者: Jason_Zeng | 来源:发表于2020-06-06 11:34 被阅读0次

映射类型

现有类型如下

interface Person {
    name: string;
    age: number;
}

一个常见的任务是将一个已知的类型每个属性都变为可选的,或者是想要某一类型的只读版本如下:

interface PersonPartial {
    name?: string;
    age?: number;
}

interface PersonReadonly {
    readonly name: string;
    readonly age: number;
}

TypeScript提供了从旧类型中创建新类型的一种方式 — 映射类型。 在映射类型里,新类型以相同的形式去转换旧类型里每个属性。 例如,你可以令每个属性成为 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>;

这样我们就可以简单的转换成某个特定需求的类型了

相关文章

网友评论

      本文标题:Typescript - 映射类型

      本文链接:https://www.haomeiwen.com/subject/omtxtktx.html