TypeScript使用技巧汇总

75 阅读1分钟

Readonly

需求: 构建一个对象模型,使得所有的属性都是可读。

interface IUser {
  name: string;
  age: number;
}

type ReadonlyUser = Readonly<IUser>;

Partial

将属性设置为可选属性。

type PartialUser = Partial<IUser>;

PartialUser is now { name?: string, age?: number }

Record

Record<K,T> 用于创建一个Map类型, 其中K是键,T是 Value

type UserRecord = Record<string, IUser>;

declare type Recordable<T = any> = Record<string, T>;

Creating Your Own Mapped Types

创建自定义类型, 不必受限于 Ts提供的类型。 在业务开发中可以进行全局设置,扩展自己的类型库。增强代码的类型安全。并减少代码重复量。

type Nullable<T> = { [P in keyof T]: T[P] | null };
//上述定义说明创建一个新的Nullable对象。并且T中的每个属性可以null.

declare type NonNullable<T> = T extends null | undefined ? never : T;
//创建一个T中的属性不为null的类型

参考链接

TypeScript的5个使用技巧