ts 映射类型
- Product 类型
- MyReadOnly 类型
- MyOptional 类型
- MyNullable 类型
- MyWritable 类型
- MyNecessary 类型
映射类型是指基于现有类型产生新的类型
通过遍历语法拷贝原有类型 在拷贝类型的基础上进行修改从而产生新的类型
如何拷贝原有类型?
拷贝原有类型主要拷贝的是两部分 原有类型中有哪些属性 属性的值是什么类型?
interface Product {
name: string;
price: number;
}
type NProduct = {
// 如何拷贝原有类型中的属性
// keyof Product => name | price
// k in (name | price)
// name
// price
// 如何获取属性(name, price) 值原有的类型
// 类型[属性名称] 得到的结果就是属性值得类型
// Product[K] => Product[name] => string
// Product[K] => Product[price] => number
[k in keyof Product]: Product[k];
}
Product 类型
目标:基于 Product 类型,创建新类型,新类型中的属性都是只读的。
interface Product {
name: string;
price: nu