TypeScript 装饰器与高级类型:映射类型和条件类型详解
1. 映射类型
映射类型允许我们通过对现有类型应用转换函数来创建新类型。下面我们将详细介绍几种常见的映射类型及其应用。
1.1 Readonly 映射类型
假设我们有一个 Person 接口,并且需要将其对象传递给 doStuff() 函数进行处理,但不希望该函数意外修改 Person 对象的某些属性,例如 age 属性。
interface Person {
name: string;
age: number;
}
const worker: Person = { name: "John", age: 22 };
function doStuff(person: Person) {
person.age = 25; // 不希望此操作发生
}
为了避免这种情况,我们可以使用内置的 Readonly 映射类型,将 Person 类型的所有属性变为只读。
const worker: Person = { name: "John", age: 22 };
function doStuff(person: Readonly<Person>) {
person.age = 25;
超级会员免费看
订阅专栏 解锁全文
77

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



