TypeScript的高级类型」的摘要信息

1. 联合类型(Union Types) 联合类型用 | 符号表示,表示一个变量可以是多种类型之一。这在参数或返回值可以是多种类型的情况下非常有用。 function formatInput(input: string | number): string { return String(input); } 上述例子中的 formatInput 函数接受一个参数 input,它可以是 string 类型或 number 类型。使用联合类型,函数内部可以安全地将输入转换为字符串,因为无论输入是字符串还是数字,最终都会得到正确的输出。 2. 交叉类型(Intersection Types) 交叉类型用 & 符号表示,表示一个新类型包含多个原始类型的所有属性。 interface A { foo: number; } interface B { bar: string; } type C = A & B; const obj: C = { foo: 42, bar: "Hello" }; 在上面的例子中,我们定义了接口 A 和 B,分别拥有 foo 和 bar 属性。然后我们使用交叉类型 C 将 A 和 B 合并成一个新类型,即 C 包含了 A 和 B 的所有属性。最后,我们创建一个对象 obj,它满足 C 类型,即同时包含 foo 和 bar 属性。 3. 映射类型(Mapped Types) 映射类型可以用来从一个已有的类型创建一个新的类型,通过对原类型的属性进行修改或添加。 interface Person { name: string; age: number; } type ReadonlyPerson = Readonly<Person>; // 等价于 // type ReadonlyPerson = { // readonly nam...