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 映射类型,将之前声明类型的所有属性变为只读。
const worker: Person = {name: "John", age: 22};
function doStuff(person: Readonly<Person>) {
person.age = 25; // 这行代码会产生编译错误
}
超级会员免费看
订阅专栏 解锁全文
105

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



