---
title: "TS类型工具函数"
date: "2026-02"
category: "TS"
tags: ["TS"]
description: "如果要取得某方法返回值的类型，这里有一个快速的解法。 typeof A指的就是：获取后面 A 值的类型。前面那个 ReturnType 是 TypeScript 内置的一大堆类型推断工具之一..."
source: "https://enriquemark.com/zh-hans/posts/TS%E7%B1%BB%E5%9E%8B%E5%B7%A5%E5%85%B7%E5%87%BD%E6%95%B0"
---

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

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

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

```ts
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` 来获取该方法的值的对象，再将其作为输入给入类型函数：类型进，类型出。
