在 TypeScript 中,type 关键字用于定义类型别名,即为一个类型创建新的名字。这种类型别名可以用于基本类型、联合类型、交叉类型、对象类型、函数类型等多种类型结构。
一.基本语法
type NewTypeName = ExistingType;
二.常见使用场景
- 1.基本类型别名 给已有类型起一个新的名字,方便后续使用。
type ID = number;
let userId: ID = 123;
- 2.联合类型 可以将多个类型组合在一起。
type Status = 'success' | 'error' | 'loading';
let requestStatus: Status;
requestStatus = 'success'; // 合法
requestStatus = 'failed'; // 错误,不在 'success' | 'error' | 'loading' 之中
- 3.对象类型 定义一个对象的结构。
type User = {
id: number;
name: string;
age?: number; // 可选属性
};
const user: User = {
id: 1,
name: 'Alice',
};
- 4.函数类型 定义一个函数的签名。
type Add = (a: number, b: number) => number;
const add: Add = (x, y) => x + y;
- 5.交叉类型 可以将多个类型合并在一起,使得变量同时满足多个类型。
type Person = {
name: string;
age: number;
};
type Employee = {
employeeId: number;
department: string;
};
type Staff = Person & Employee;
const staffMember: Staff = {
name: 'Bob',
age: 30,
employeeId: 12345,
department: 'IT'
};
- 6.复杂类型组合 可以通过 type 定义更复杂的类型结构,包括数组、元组等。
type Point = [number, number]; // 元组
let p1: Point = [0, 0];
type StringArray = string[]; // 字符串数组
let names: StringArray = ['Alice', 'Bob'];
三.使用 type 的好处
- 可读性和复用性:通过类型别名,你可以给复杂的类型起一个简单的名字,使代码更容易理解和复用。
- 类型安全:你可以确保值符合特定的类型,防止意外的类型错误。
- 灵活性:type 可以定义联合类型、交叉类型等复杂类型,为开发者提供极大的灵活性。
四.type和interface的区别
- type 用于定义类型别名,支持联合类型、交叉类型等,并且使用 =。
- interface 用于定义接口,适合面向对象编程,且可以通过扩展实现继承。
- 以下是常量对象
const NativeBridge = {}