Ts的内置工具类型

71 阅读1分钟
  1. Required

    • 作用:将类型 T 中的所有属性变为必选。
    • 示例:如果有一个接口 interface User { name?: string; age?: number; },使用 type RequiredUser = Required<User>; 后,RequiredUser 类型的 name 和 age 属性都将变为必选。
  2. Readonly

    • 作用:将类型 T 中的所有属性变为只读。
    • 示例:对于接口 interface User { name: string; age: number; }type ReadonlyUser = Readonly<User>; 后,ReadonlyUser 类型的 name 和 age 属性将不能被重新赋值。
  3. Pick

    • 作用:从类型 T 中选择指定的属性 K,并创建一个新类型,该类型仅包含 K 中指定的属性。
    • 示例:给定 interface User { name: string; age: number; email: string; }type UserProfile = Pick<User, 'name' | 'age'>; 会创建一个新类型 UserProfile,它只包含 name 和 age 属性。
  4. Omit

    • 作用:从类型 T 中排除指定的属性 K,并创建一个新类型,该类型不包含 K 中指定的属性。
    • 示例:基于上述 User 接口,type UserWithoutEmail = Omit<User, 'email'>; 会创建一个新类型 UserWithoutEmail,它不包含 email 属性。
  5. Record

    • 作用:将对象所有的属性都转化为需要的类型。Record<K, T> 创建一个类型,该类型的属性键是 K,属性值是 T
    • 示例:type Key = 'id' | 'name'; type RecordExample = Record<Key, string>; 会创建一个类型,其属性键可以是 'id' 或 'name',属性值必须是 string 类型。
  6. NonNullable

    • 作用:从类型中去除 null 和 undefined
    • 示例:type NonNullableString = NonNullable<string | null | undefined>; 的结果是 string
  7. Parameters

    • 作用:获取函数的参数类型所组成的元组类型。
    • 示例:对于函数 function foo(a: number, b: string): void {}type Params = Parameters<typeof foo>; 的结果是 [number, string]
  8. ReturnType

    • 作用:获取函数的返回值类型。
    • 示例:基于上述 foo 函数,type ReturnTypeFoo = ReturnType<typeof foo>; 的结果是 void