JS TypeScript 高级类型详解

2025-12-27 6524阅读

在 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 同时具备 AB 接口的属性。

类型别名

类型别名可以为复杂类型定义一个简洁的名称:

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零点博客原创文章,转载或复制请以超链接形式并注明出处。