# @api\.global/typedrequest-interfaces 中文文档

规范地址：https://npmcn.com/package/%40api.global/typedrequest-interfaces/

版本：7\.1\.0
npm 元数据更新时间：2026-08-15T08:48:17.258Z
中文译文更新时间：2026-11-06T09:51:52.599Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40api.global/typedrequest-interfaces
原文对照：https://npmcn.com/package/%40api.global/typedrequest-interfaces/?lang=original

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

- 包体积（解压后）：29.5 kB，11 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2023-08-03T19:22:30.734Z
- 最新版本发布：2026-08-15T08:48:17.079Z
- 近 30 天下载量：29377（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：27（近 12 个月 7 个）

## 中文简介

已打入请求、事件、标记和运输中性VirtualStream合同.

## 安装

```sh
npm install @api.global/typedrequest-interfaces
```

也可以使用：`pnpm add @api.global/typedrequest-interfaces`、`yarn add @api.global/typedrequest-interfaces`、`bun add @api.global/typedrequest-interfaces`

## README

# @ api. global/ 类型请求- 界面

已打入请求、事件、标记和运输中性VirtualStream合同.

## 问题报告和安全

关于报告错误、问题或安全弱点,请访问 [社区. fos.global/](https://community.foss.global/)这是所有问题报告的中央社区中心。 签署和遵守我们缴款协议并经过身份验证的开发者也可获得 [代码.fos.global/](https://code.foss.global/) 账户直接提交 Pull 请求.

## 安装

要安装 `@api.global/typedrequest-interfaces`,您需要安装在您的系统中的节点.js。 然后,您可以在您的终端中运行以下命令,从而将此软件包添加到您的工程中:

```bash
pnpm add @api.global/typedrequest-interfaces
```

这将将软件包添加到您的项目依赖性中 。 确保您在您的工程目录中或者指定您的工程所在路径 .

## 使用量

此软件包提供打入的请求、事件、标记和运输中性 TypeScript应用程序的VirtualStream合同.

### 设置您的工程

首先,确保您的项目能够使用 TypeScript (ECMAScript 模块) 。 你需要一个 `tsconfig.json` 在工程根中至少有以下设置的文件 :

```json
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "moduleResolution": "node",
    "outDir": "./dist",
    "declaration": true,
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"]
}
```

根据您的项目要求调整设置 。 这种配置支持了现代的JavaScript特性和TypeScript.

### 基本执行

要使用软件包提供的接口,请从导入到您的 TypeScript 文件开始。 下面是一个实例,说明如何使用接口定义打出的请求:

```typescript
import { ITypedRequest, ITypedEvent, ITag, TVirtualStream } from '@api.global/typedrequest-interfaces';

// Example: Defining a typed request
interface MyCustomRequest extends ITypedRequest {
  method: 'MyCustomMethod';
  authInfo?: {
    jwt: string;
  };
  request: {
    someData: string;
  };
  response: {
    resultData: number;
  };
}
```

此片段显示如何创建自定义界面 `MyCustomRequest` 执行 `ITypedRequest` 界面。 您可以指定请求和响应数据的类型,以适应应用程序的需要.

`requestInstanceId` 是一个精确请求尝试的传输元数据。 每个 运输反应必须保留。 取消和单独路由响应 登记册与方法和相关性一起使用 ID 无法重试 使用陈旧的反应。 应用程序请求接口不需要声明 又来了.

### 处理类型事件

也可以定义并使用类似以下示例的打出的事件:

```typescript
// Example: Defining a typed event
interface MyCustomEvent extends ITypedEvent<{ message: string }> {
  name: 'MyCustomEvent';
  uniqueEventId: 'Event123';
  payload: {
    message: 'Hello World';
  };
}
```

### 使用标记

标记可用于将元数据或分类信息附加到您的请求或事件上。 执行标记看起来是这样的:

```typescript
// Example: Defining a tag
interface UserActionTag extends ITag {
  name: 'UserAction';
  payload: {
    userId: number;
    action: string;
  };
}
```

### 虚拟流

`TVirtualStream` 一种运输中性抽象的有限转让 相机帧等可打开的流. 它带有命令逻辑 `Uint8Array` 在一个明确的局部方向上块. 一个 `send()` 或者说 `WritableStream.write()` 映射到一个 `receive()` 结实或可读的队列, 即便运输在内部碎片化.

```typescript
import type { ITypedRequest, TVirtualStream } from '@api.global/typedrequest-interfaces';

interface IUploadRequest extends ITypedRequest {
  method: 'upload';
  request: {
    stream: TVirtualStream<'send'>;
  };
  response: {
    stored: boolean;
  };
}

const upload = async (
  stream: TVirtualStream<'send'>,
  chunks: Uint8Array[],
) => {
  for (const chunk of chunks) {
    await stream.send(chunk);
  }
  return await stream.close();
};
```

共享类型请求 DTO 的方向总是请求对等方 向上转. `TypedHandler` 为处理器的本地视图反转一次 . 上传声明为 `TVirtualStream<'send'>` 因此,操作者 `TVirtualStream<'receive'>`。 。 。 .

接收者一次消耗一个完整的逻辑块. `undefined` 有风度 欧文。 排出 EOF后,接收者明确接受流;拒绝 或中止为对等可见 :

```typescript
const receive = async (stream: TVirtualStream<'receive'>) => {
  while (true) {
    const chunk = await stream.receive();
    if (chunk === undefined) break;
    // Persist or process this complete logical chunk.
  }
  return await stream.accept();
};
```

无限制流省略 `integrity` 并可以持续到对等结束 他们。 有限已核实的流 声明准确的集合字节长度和 SHA-256摘要. 块边界不影响聚合文摘:

```typescript
import type {
  IVirtualStreamIntegrity,
} from '@api.global/typedrequest-interfaces';

const integrity: IVirtualStreamIntegrity = {
  algorithm: 'sha256',
  byteLength: 12_345,
  digest: `sha256:${'0'.repeat(64)}`,
};
```

`opened` 如果成立失败,则拒绝. `completion` 以共享方式解决 接受接收,拒绝任何异常结果. `closed` 永远 解析 . `WritableStream.close()` 地图到 发送者的优雅的接近, `WritableStream.abort()` 要中止的地图,以及 `ReadableStream.cancel()` 地图到接收器拒绝。 直接 `receive()` 财务报告和审定财务报表 可读消费是相互排斥的;发送者 `send()` 可写 写入一个命令的限入队列 .

`IVirtualStreamDescriptor`, (中文(简体) ), `IVirtualStreamTransportRegistration`,以及 `IVirtualStreamTransport` 定义类型请求和 键入Socket. 描述式运输数据与JSON兼容但不透明 键入请求. 登记是同步的,无声的,它的同源性 处置者不进行运输 编译- 时间对向方向通过 `TOppositeVirtualStreamDirection`。 。 。 . 运输中转接收所需 `AbortSignal` 和剩余超时 运输必须停止保留中转作业,并在中断时迅速结算.

所显示的例子表明: `@api.global/typedrequest-interfaces` 软件包,用于构建应用程序的请求响应机制、事件处理、标记和流管理。 通过遵循 TypeScript 和 ESM 的惯例,您可以将这些接口杠杆化到 坚固的,被键入的 API 和服务中去.

## 许可证和法律资料

这个寄存器包含根据麻省理工学院许可证许可的开源代码. 许可证副本可以在寄存器许可证文件中找到.

**请注意:** 麻省理工学院许可证不准许使用该项目的商品名、商标、服务标记或产品名称,除非在描述作品来源和复制NOTICE文件内容时需要合理和习惯使用.

### 商标

这个项目由Task Venture Capital GmbH拥有和维护。 与Task Venture Capital GmbH相关的名称和标志以及任何相关的产品或服务是Task Venture Capital GmbH或第三方的商标,不属于本文授予的麻省理工学院许可证的范围.

使用这些商标必须符合Wasure Venture Capital GmbH的商标准则或各自的第三方所有者的准则,任何使用都必须获得书面批准。 此处使用的第三方商标是其各自所有者的财产并仅以描述方式使用,例如用于实施API或类似的.

### 企业信息

任务风险资本股份有限公司  
在德国不来梅地区法院注册的HRB 35230 HB

如欲了解任何法律查询或进一步情况,请通过电子邮件与我们联系 [你好@ task.vc](mailto:hello@task.vc)。 。 。 .

通过使用这个寄存器,你承认你读过这个部分,同意遵守它的条款,并且明白代码的许可并不意味着Task Venture Capital GmbH认可任何衍生作品.

## 常见问题

### @api\.global/typedrequest-interfaces 是什么？

已打入请求、事件、标记和运输中性VirtualStream合同\.

### 如何安装 @api\.global/typedrequest-interfaces？

在项目目录运行 npm install @api\.global/typedrequest-interfaces，或使用 pnpm add / yarn add / bun add。

### @api\.global/typedrequest-interfaces 支持 TypeScript 吗？

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

### @api\.global/typedrequest-interfaces 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @api\.global/typedrequest-interfaces 可以商用吗？

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

### @api\.global/typedrequest-interfaces 的下载量有多少？

根据 npm 官方下载统计，@api\.global/typedrequest-interfaces 在 2026/10/06 – 2026/11/04 这 30 天内被下载 29,377 次，日均约 979 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @api\.global/typedrequest-interfaces 还在维护吗？

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

