1 类型别名
type 关键字可用创建类型别名:
// 对某一个类型创建别名type UserName = string;type UserNameGetter = () => string; // ❗注意此处不是函数声明// 对某一些类型(联合类型)创建别名type GetUserName = UserName | UserNameGetter;// 测试function getUserName(username: GetUserName): UserName {if (typeof username === "string") {return username;}return username();}
2 字面量类型
type 关键字还可以用于基础的字面量类型进而约束取值范围:
type derection = 'UP' | 'RIGHT' | 'DOWN' | 'LEFT';type customBoolean = true | false | 1 | 0;function validateDerection(key: derection): customBoolean {return ['UP','RIGHT','DOWN','LEFT'].includes(key);}validateDerection('Enter'); // Error: 类型“"Enter"”的参数不能赋给类型“derection”的参数。
