在 TypeScript 中,type 是用来定义 类型别名(Type Alias) 的关键字。它的作用是给一个复杂或重复的类型结构起个名字,便于复用和代码更清晰。
type 类型名 = 类型定义;
type Age = number;
let myAge: Age = 25;
这相当于:
let myAge: number = 25;
type Person = {
name: string;
age: number;
};
const user: Person = {
name: "Alice",
age: 30
};
type Status = "success" | "error" | "loading";
let currentStatus: Status = "loading";
type Response<T> = {
code: number;
data: T;
};
const res: Response<string> = {
code: 200,
data: "OK"
};
type 定义函数类型type Greet = (name: string) => string;
const greet: Greet = (name) => `Hello, ${name}`;
这是定义了一个函数变量
greet,它的类型是Greet,函数接收一个name参数,返回一个字符串"Hello, xxx"。
type vs interface 有什么区别?| 特性 | type |
interface |
|---|---|---|
| 定义基本类型别名 | ✅ | ❌ |
| 定义对象结构 | ✅ | ✅ |
| 支持扩展(继承) | ✅(用 &) |
✅(用 extends) |
| 支持合并声明 | ❌ | ✅(可以重复定义 interface,会自动合并) |
示例对比:
type A = { foo: string };
type B = A & { bar: number }; // 合并A和B
interface A { foo: string }
interface B extends A { bar: number }
type 是给任何类型(基本类型、对象、联合类型、函数等)起名字的工具,适合表达更灵活或组合型的类型结构,是 TypeScript 中非常强大的工具之一。