TypeScript 常用内置实用类型

灯火 Lv4

Partial<T>

描述‌:将类型 T 的所有属性设置为可选。

1
2
3
4
5
6
interface User {
name: string;
age: number;
}
type PartialUser = Partial<User>;
// 等价于 { name?: string; age?: number; }

Required<T>

‌描述‌:将类型 T 的所有属性设置为必填。

1
2
3
4

type PartialUser = { name?: string; age?: number };
type RequiredUser = Required<PartialUser>;
// 等价于 { name: string; age: number; }

Readonly<T>

‌描述‌:将类型 T 的所有属性设置为只读。

1
2
3

type ReadonlyUser = Readonly<User>;
// 等价于 { readonly name: string; readonly age: number; }

Record<K, T>

‌描述‌:创建一个对象类型,其键为 K,值为 T。

1
2
3

type UserRoles = Record<"admin" | "user", User>;
// 等价于 { admin: User; user: User }

Pick<T, K>

‌描述‌:从类型 T 中选取指定的属性 K。

1
2
type UserName = Pick<User, "name">; 
// 等价于 { name: string; }

Omit<T, K>

‌描述‌:从类型 T 中排除指定的属性 K。

1
2
type UserWithoutAge = Omit<User, "age">;
// 等价于 { name: string; }

Exclude<T, U>

‌描述‌:从联合类型 T 中排除可以赋值给 U 的类型。

1
2
3

type T = "a" | "b" | "c";
type Result = Exclude<T, "a">; // "b" | "c"

Extract<T, U>

‌描述‌:从联合类型 T 中提取可以赋值给 U 的类型。

1
2
3

type T = "a" | "b" | 1;
type Result = Extract<T, string>; // "a" | "b"

NonNullable<T>

‌描述‌:从 T 中排除 null 和 undefined。

1
2
type T = string | null | undefined;
type Result = NonNullable<T>; // string

ReturnType<T>

‌描述‌:获取函数类型 T 的返回值类型。

1
2
type Fn = () => number;
type Result = ReturnType<Fn>; // number

Parameters<T>

‌描述‌:获取函数类型 T 的参数类型组成的元组。

1
2
type Fn = (a: string, b: number) => void;
type Params = Parameters<Fn>; // [a: string, b: number]

Awaited<T>

‌描述‌:获取 Promise 的最终返回值类型(递归解包嵌套 Promise)。

1
2
3

type PromiseType = Promise<Promise<string>>;
type Result = Awaited<PromiseType>; // string

字符串操作工具类型

以下类型用于操作字符串字面量类型:

  • Uppercase<T>:将字符串转换为大写
  • Lowercase<T>:将字符串转换为小写
  • Capitalize<T>:首字母大写
  • Uncapitalize<T>:首字母小写
    1
    2
    3
    type T = "hello";
    type UppercaseT = Uppercase<T>; // "HELLO"
    type CapitalizeT = Capitalize<T>; // "Hello"

其他实用类型

  • ‌ThisParameterType<T>‌:提取函数 Tthis 参数类型
  • OmitThisParameter<T>‌:移除函数 Tthis 参数类型
  • ‌ConstructorParameters<T>‌:获取构造函数参数类型
  • InstanceType<T>‌:获取构造函数返回的实例类型

提示:所有实用类型均基于 TypeScript 的类型系统实现,无需引入即可使用。

  • 标题: TypeScript 常用内置实用类型
  • 作者: 灯火
  • 创建于 : 2025-04-19 08:01:57
  • 更新于 : 2025-04-19 08:16:11
  • 链接: https://blog.juniverse.top/2025/04/19/common-utillty-types/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论