EnriqueMark
TS

TS类型工具函数

2026-02 简体中文

如果要取得某方法返回值的类型,这里有一个快速的解法。

// 意思就是:prisma 的类型 = getPrisma() 返回的东西的类型
prisma: ReturnType<typeof getPrisma>

typeof A指的就是:获取后面 A 值的类型。前面那个 ReturnType 是 TypeScript 内置的一大堆类型推断工具之一。但在这一块来讲,它的意思是返回getPrisma这个方法结果值的类型。

ReturnType<T>    // 输出给定对象T返回值的类型
Parameters<T>    // 输出给定对象T参数类型(元组)
Awaited<T>       // 输出 Promise 对象返回值的类型
Partial<T>       // 使对象T的所有属性变可选,即让它们都 ?:
Required<T>      // 使对象T的所有属性变必填
Pick<T, K>       // 挑选对象T的部分属性K
Omit<T, K>       // 排除对象T的部分属性K

这一大堆可以视为一种内置的类型函数:就是输入一个类型,返回一个加工后的类型。如果里面的T本身是一个方法而非对象的话,则需要 typeof T 来获取该方法的值的对象,再将其作为输入给入类型函数:类型进,类型出。