TypeScript高级泛型类型全解析
1. 单一映射中的转换组合
在类型映射中,可以将多个转换组合在一起,对属性应用多个更改。以下是一个示例代码:
import { City, Person, Product, Employee } from "./dataTypes";
type CustomMapped<T, K extends keyof T> = {
readonly[P in K]?: T[P]
};
type BuiltInMapped<T, K extends keyof T> = Readonly<Partial<Pick<T, K>>>;
let p1: CustomMapped<Product, "name"> = { name: "Kayak" };
let p2: BuiltInMapped<Product, "name"| "price">
= { name: "Lifejacket", price: 48.95};
console.log(`Custom mapped type: ${p1.name}`);
console.log(`Built-in mapped type: ${p2.name}, ${p2.price}`);
在自定义类型映射中,问号和 readonly 关键字可以在同一转换中应用,并且可以通过名称选择属性。映射还可以链式组合,如 Pick 、 Partial
超级会员免费看
订阅专栏 解锁全文
31

被折叠的 条评论
为什么被折叠?



