JS TypeScript 高级类型详解
在 JavaScript 开发中,TypeScript 为我们带来了类型系统,而高级类型更是其中的强大工具。
联合类型
联合类型允许一个变量具有多种类型。例如:
let value: string | number;
value = "hello";
value = 123;
这样,value 既可以是字符串,也可以是数字。
交叉类型
交叉类型是将多个类型合并为一个类型。比如:
interface A {
a: number;
}
interface B {
b: string;
}
let obj: A & B = { a: 1, b: "test" };
obj 同时具备 A 和 B 接口的属性。
类型别名
类型别名可以为复杂类型定义一个简洁的名称:
type StringOrNumber = string | number;
let data: StringOrNumber;
方便后续使用。
索引类型
通过索引类型,我们可以根据对象的属性名获取其类型:
interface Person {
name: string;
age: number;
}
type NameType = Person["name"]; // string
映射类型
映射类型可以基于现有类型创建新类型。例如:
interface Original {
a: number;
b: string;
}
type Mapped = { [K in keyof Original]: Original[K] };
Mapped 类型与 Original 类型相同。
条件类型
条件类型根据条件判断选择类型:
type IsString<T> = T extends string? "yes" : "no";
type result = IsString<number>; // "no"
高级类型在 TypeScript 中为我们提供了更灵活、更强大的类型定义方式。它们可以帮助我们编写更健壮、更易维护的代码。在复杂的项目中,合理运用这些高级类型,能够提升代码的可读性和可扩展性。无论是处理数据交互,还是构建大型应用架构,它们都发挥着重要作用。随着对 TypeScript 学习的深入,我们会发现高级类型还有更多的应用场景等待我们去探索和利用。
文章版权声明:除非注明,否则均为Dark零点博客原创文章,转载或复制请以超链接形式并注明出处。

