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 來獲取該方法的值的物件,再將其作為輸入給入型別函式:型別進,型別出。