您的位置:首页> 前端教程> TS教程

TypeScript 映射类型

2018-8-6 00:18| 作者: admin| 查看: 2694| 评论: 0|来自: 蚂蚁部落

在实际应用中,可能需要将现有类型转换为可选,看如下代码实例:

[typescript] 纯文本查看 复制代码
interface Person {
  name: string;
  age: number;
  location: string;
}

将上面的接口类型中的属性转换为可选,代码如下:

[typescript] 纯文本查看 复制代码
interface PartialPerson {
  name?: string;
  age?: number;
  location?: string;
}

映射类型转换可以使用如下方式:

[typescript] 纯文本查看 复制代码
type Partial<T> = {
  [P in keyof T]?: T[P];
};
type PartialPerson = Partial<Person>;

特别说明:Partial已经在TypeScript内置,还有一个常用的内置Readonly<T>,代码如下:

[typescript] 纯文本查看 复制代码
interface Person {
  name: string;
  age: number;
  location: string;
}
type ReadonlyPerson = Readonly<Person>;

再来看一段非内置的,代码实例如下:

[typescript] 纯文本查看 复制代码
interface Person {
  name: string;
  age: number;
  location: string;
}
let person:Person={
  name: "蚂蚁部落",
  age: 4,
  location: "青岛市南区"
}
// 从T中选取一组属性K
declare function pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K>;
const nameAndAgeOnly = pick(person, "name", "age");  // { name: string, age: number }

鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部