# @arrirpc/codegen-ts 中文文档

规范地址：https://npmcn.com/package/%40arrirpc/codegen-ts/

版本：0\.85\.0
npm 元数据更新时间：2026-10-03T04:04:03.996Z
中文译文更新时间：2026-11-06T20:19:50.365Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40arrirpc/codegen-ts
原文对照：https://npmcn.com/package/%40arrirpc/codegen-ts/?lang=original
项目主页：https://github.com/modiimedia/arri#readme
源码仓库：https://github.com/modiimedia/arri

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：122 kB，8 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2024-05-14T04:35:28.438Z
- 最新版本发布：2026-10-03T04:04:03.820Z
- 近 30 天下载量：4656（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：89（近 12 个月 11 个）

## 中文简介



## 安装

```sh
npm install @arrirpc/codegen-ts
```

也可以使用：`pnpm add @arrirpc/codegen-ts`、`yarn add @arrirpc/codegen-ts`、`bun add @arrirpc/codegen-ts`

## README

# 阿里打字码

## 设置

### 1) 将生成器添加到您的 arri 配置

```ts
// arri.config.ts
import { defineConfig, generators } from 'arri';

export default defineConfig({
    generators: [
        generators.typescriptClient({
            clientName: 'MyClient',
            outputFile: './client/src/myClient.g.ts',
        }),
    ],
});
```

**选项 :**

| 名称 | 说明 |
| --- | --- |
| 输出文件( 需要) | 由生成器创建的文件路径 |
| 客户端Name | 生成客户端的名称 |
| 类型 前缀 | 在生成的类型名称中添加前缀 |
| 根服务 | 设置生成客户端的根服务 |
| 更美的选项 | 生成代码的格式选项 |
| 转动器 | 覆盖用于创建程序的默认函数 |

### 2) 安装 TS 客户端库

确保将使用生成代码的项目安装了客户端库. 版本号应该符合您的 arri cli 版本 .

```bash
# npm
npm i @arrirpc/client

# pnpm
pnpm i --save @arrirpc/client
```

## 使用生成代码

### 初始化客户端

```ts
// This will match whatever you put in the arri config
import { MyClient } from './myClient.g';

const client = new MyClient({
    // only required field
    baseUrl: 'https://example.com',

    // everything below is optional
    headers: () => {
        return {
            Authorization: '<some-token>',
        };
    },
    onError: (err) => {},
    options: {
        retry: 4,
        retryDelay: 200,
        retryStatusCodes: [400, 403, 500, 501],
        onRequest: (ctx) => {},
        onRequestError: (ctx) => {},
        onResponse: (ctx) => {},
        onResponseError: (ctx) => {},
        signal: undefined, // abortcontroller signal
        timeout: 200,
    },
});

await client.myProcedure({ foo: 'foo' });

// individual procedures can also override the global request options
await client.myProcedure({ foo: 'foo' }, { timeout: 400 });
// be aware that these options are not merged with the global request options so you will have to
// re-specify every hook if you only want to change one thing
```

Root客户端将是一个包含单一类中所有服务和程序的类. 若您需要特殊服务。 您也可以进口服务.

例如,如果将一些程序分组如下: `"users"` 我们可以这样进口服务.

```ts
import { MyClientUsersService } from './myClient.g';

const usersService = new MyClientUsersService({
    baseUrl: 'https://example.com',
    headers: () => {
        return {
            Authorization: '<some-token>',
        };
    },
});

usersService.someProcedure();
```

### 导入和使用类型

所有生成的种类和序列器/分解器也可以从生成的代码中导入. 类型将匹配计划中给他们的ID 。 序列化和解析帮助器将使用前缀 `$$`

```ts
// import the user type and the user helper
import { type User, $$User } from './myClient.g';

const bob: User = {
    // field
};

$$User.serialize(bob); // outputs valid JSON
$$User.parse('<some-json-string>'); // outputs a User
```

# 发展

## 大楼

运行 `nx build ts-codegen` 来建造图书馆.

## 运行单元测试

运行 `nx test ts-codegen` 通过 [维特](https://vitest.dev/)。 。 。 .

## 常见问题

### 如何安装 @arrirpc/codegen-ts？

在项目目录运行 npm install @arrirpc/codegen-ts，或使用 pnpm add / yarn add / bun add。

### @arrirpc/codegen-ts 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @arrirpc/codegen-ts 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @arrirpc/codegen-ts 可以商用吗？

@arrirpc/codegen-ts 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @arrirpc/codegen-ts 的下载量有多少？

根据 npm 官方下载统计，@arrirpc/codegen-ts 在 2026/10/07 – 2026/11/05 这 30 天内被下载 4,656 次，日均约 155 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @arrirpc/codegen-ts 还在维护吗？

最新版本 0\.85\.0 发布于 2026/10/03（1 个月前）；至今共发布 89 个版本，其中过去 12 个月发布了 11 个；首次发布于 2024/05/14。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

