分享几个我工作中封装的typeScript方法

TS目前支持的方法已经有不少了https://www.typescriptlang.or...
但是还是不够,下面分享几个我自己封装的常用方法


交集

type Intersection = Pick<
  T,
  Extract & Extract
>;

分享几个我工作中封装的typeScript方法_第1张图片


差集

type Diff = Omit<
  T & U,
  keyof Intersection
>;

image.png


将指定属性变为Optional

type PartialKey = Partial & Omit;

image.png


将指定属性变为Required

type RequiredKey = U &
  Required>;

image.png


获取数组元素类型

type ArrayItem = T extends (infer P)[] ? P : never;

分享几个我工作中封装的typeScript方法_第2张图片


获取Record中value类型

type RecordValueType> = U extends Record ? P : never;

image.png


获取Promise返回类型

type PromiseReturnType> = U extends Promise ? P : never;

分享几个我工作中封装的typeScript方法_第3张图片

代码: https://stackblitz.com/edit/t...