TypeScript中特殊的常用类型
@zs.duan
TypeScript中特殊的常用类型
阅读量:489
2024-08-16 16:17:29

在TypeScript中,Record<string, any> 是一种特殊且常用的类型,用于表示键为字符串类型、值为任意类型的对象。除了这种类型外,TypeScript还提供了其他一些比较特殊的类型,它们在不同的场景下发挥着重要作用。以下是一些TypeScript中比较特殊的类型:

  1. Partial<T>:
    • 作用:将T中的所有属性变为可选的。
    • 示例:type PartialPerson = Partial<{ name: string; age: number; }>; 相当于 { name?: string; age?: number; }
  2. Required<T>:
    • 作用:将T中的所有属性变为必需的。
    • 示例:与Partial<T>相反,如果有一个可选属性的类型,Required<T>可以将其所有属性变为必需。
  3. Pick<T, K>:
    • 作用:从T中选取出所有K中指定的属性。
    • 示例:type Name = Pick<{ name: string; age: number; }, "name">; 相当于 { name: string; }
  4. Omit<T, K>:
    • 作用:从T中排除所有K中指定的属性。
    • 示例:type Age = Omit<{ name: string; age: number; }, "name">; 相当于 { age: number; }
  5. Readonly<T>:
    • 作用:将T中的所有属性变为只读。
    • 示例:type ReadonlyPerson = Readonly<{ name: string; age: number; }>; 之后,尝试修改ReadonlyPerson对象的属性将会导致编译错误。
  6. Record<K, T>:
    • 除了之前提到的Record<string, any>外,Record类型还可以用于更广泛的场景,通过指定不同的键类型K和值类型T来创建不同的索引类型。
    • 示例:Record<number, boolean> 表示一个对象的键为数字类型,值为布尔类型。
  7. Exclude<T, U>:
    • 作用:从T中排除所有可以赋值给U的类型。
    • 示例:type T0 = Exclude<"a" | "b" | "c", "a">; 相当于 "b" | "c"
  8. Extract<T, U>:
    • 作用:提取T中可以赋值给U的类型。
    • 示例:与Exclude相反,type T1 = Extract<"a" | "b" | "c", "a" | "f">; 相当于 "a"
  9. NonNullable<T>:
    • 作用:从T中排除null和undefined。
    • 示例:type T2 = NonNullable<string | null | undefined>; 相当于 string
  10. Parameters<T>:
    • 作用:获取函数类型T的参数类型组成的元组。
    • 示例:type T3 = Parameters<(x: number, y: string) => void>; 相当于 [number, string]
  11. ConstructorParameters<T>:
    • 作用:获取构造函数类型T的参数类型组成的元组。
    • 示例:用于类构造函数参数的类型提取。
  12. ReturnType<T>:
    • 作用:获取函数类型T的返回类型。
    • 示例:type T4 = ReturnType<() => string>; 相当于 string

这些特殊类型在TypeScript中非常有用,它们提供了强大的类型操作能力,使得开发者能够更精确地定义和操作类型。

评论:

还没有人评论 快来占位置吧