TS常用技巧

title: TS常用技巧 id: 45c431a6efdcd758d5562acf70778864 tags:

  • 知识点 date: 2024/01/27 22:39:46 updated: 2024/11/28 12:18:08 isPublic: true --#|[分隔]|#--

TS常用技巧

一些常用的Ts体操的记录,部分功能的实现会使用 TS 自动的一些实用程序类型。

为window添加字段

// 给Window添加字段
declare interface Window {
  flag: string, // 给Window添加这个字段
  apple: string | number, // 给Window添加这个字段
}

为无声明文件的第三方包添加声明

// 可以给qs这个无类型的第三方包声明类型,声明成了any
declare module 'qs';
// 或者
declare type qs = {
  // ...
}

字符串数组生成type

把下面这个字符串数组,每一项的数组,转为 type 罗列出来:

进行转换的方法:

把对象的key生成type

进行转换的方法:

对象数组中某字段的值组成type

比如,我有对象数组,我想把对象数组中每个对象的 value 字段的值取出来,得到一个 type

提取类型中的某几个字段得到新类型

使用 ts 的 Pick 这个实用程序类型。

排除类型中的某几个字段得到新类型

使用 ts 的 Omit 这个实用程序类型。

把类型中所有字段都设为可选,得到新类型

使用 ts 的 Partial 这个实用程序类型。

把类型中所有字段都设为必选,得到新类型

使用 ts 的 Required 这个实用程序类型。

把类型中所有字段都设为只读,得到新类型

使用 ts 的 Readonly 这个实用程序类型。

传入一个Promise,得到这个Promise返回值的类型

ts没有提供对应实用程序类型,需要自己写。

注意下面是传入一个Promise,不是Promise方法

传入异步的Promise函数,得到这个异步方法返回值的类型

ts没有提供对应使用程序类型,需要自己写,也会需要用到上面自行封装的实用程序。

传入非异步的普通方法,得到这个方法返回值的类型

使用 ts 的 ReturnType 这个实用程序类型。

ReturnType是传入一个方法类型的Type,最终得到这个方法返回的值的类型。

Last updated

Was this helpful?