1 类型别名

type 关键字可用创建类型别名:

  1. // 对某一个类型创建别名
  2. type UserName = string;
  3. type UserNameGetter = () => string; // ❗注意此处不是函数声明
  4. // 对某一些类型(联合类型)创建别名
  5. type GetUserName = UserName | UserNameGetter;
  6. // 测试
  7. function getUserName(username: GetUserName): UserName {
  8. if (typeof username === "string") {
  9. return username;
  10. }
  11. return username();
  12. }

2 字面量类型

type 关键字还可以用于基础的字面量类型进而约束取值范围

  1. type derection = 'UP' | 'RIGHT' | 'DOWN' | 'LEFT';
  2. type customBoolean = true | false | 1 | 0;
  3. function validateDerection(key: derection): customBoolean {
  4. return ['UP','RIGHT','DOWN','LEFT'].includes(key);
  5. }
  6. validateDerection('Enter'); // Error: 类型“"Enter"”的参数不能赋给类型“derection”的参数。