# @alessiofrittoli/type-utils 中文文档

规范地址：https://npmcn.com/package/%40alessiofrittoli/type-utils/

版本：2\.2\.0
npm 元数据更新时间：2026-10-28T21:35:52.547Z
中文译文更新时间：2026-11-06T10:35:31.011Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：30.5 kB，13 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=24\.15\.0
- 运行依赖：0 个
- peer 依赖：@alessiofrittoli/node-scripts ^4\.2\.0，@alessiofrittoli/chain-functions ^2\.8\.0
- 首次发布：2024-11-24T17:03:20.094Z
- 最新版本发布：2026-10-28T21:35:52.346Z
- 近 30 天下载量：3456（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：29（近 12 个月 6 个）

## 中文简介

轻量级类型Script 工具

## 安装

```sh
npm install @alessiofrittoli/type-utils
```

也可以使用：`pnpm add @alessiofrittoli/type-utils`、`yarn add @alessiofrittoli/type-utils`、`bun add @alessiofrittoli/type-utils`

## README

# 类型 Utils QQ

## 轻量级类型Script 工具

 [![Latest version](https://img.shields.io/npm/v/@alessiofrittoli/type-utils)](https://npmjs.org/package/@alessiofrittoli/type-utils)[![Socket Security score](https://socket.dev/api/badge/npm/package/@alessiofrittoli/type-utils) ](https://socket.dev/npm/package/@alessiofrittoli/type-utils/overview)[![npm downloads](https://img.shields.io/npm/dm/@alessiofrittoli/type-utils.svg) ](https://npmjs.org/package/@alessiofrittoli/type-utils)[![Dependencies](https://badgen.net/bundlephobia/dependency-count/@alessiofrittoli/type-utils) ](https://bundlephobia.com/package/@alessiofrittoli/type-utils)[![Dependencies status](https://img.shields.io/librariesio/release/npm/@alessiofrittoli/type-utils)](https://libraries.io/npm/%40alessiofrittoli%2Ftype-utils)

 [![minified](https://badgen.net/bundlephobia/min/@alessiofrittoli/type-utils)](https://bundlephobia.com/package/@alessiofrittoli/type-utils)[![minizipped](https://badgen.net/bundlephobia/minzip/@alessiofrittoli/type-utils) ](https://bundlephobia.com/package/@alessiofrittoli/type-utils)[![Tree shakable](https://badgen.net/bundlephobia/tree-shaking/@alessiofrittoli/type-utils)](https://bundlephobia.com/package/@alessiofrittoli/type-utils)

[![Fund this package](https://img.shields.io/static/v1?label=Fund%20this%20package&message=%E2%9D%A4&logo=GitHub&color=%23DB61A2)](https://github.com/sponsors/alessiofrittoli)

### 目录

-   [开始](https://npmcn.com/package/%40alessiofrittoli/type-utils/#readme-getting-started)
    -   [使用工具类型](https://npmcn.com/package/%40alessiofrittoli/type-utils/#readme-utility-types-usage)
    -   [全球扩展器设置](https://npmcn.com/package/%40alessiofrittoli/type-utils/#readme-global-extenders-setup)
-   [发展](https://npmcn.com/package/%40alessiofrittoli/type-utils/#readme-development)
    -   [地方发展](https://npmcn.com/package/%40alessiofrittoli/type-utils/#readme-local-development)
    -   [生产建设](https://npmcn.com/package/%40alessiofrittoli/type-utils/#readme-production-build)
    -   [林特](https://npmcn.com/package/%40alessiofrittoli/type-utils/#readme-lint)
    -   [捐款](https://npmcn.com/package/%40alessiofrittoli/type-utils/#readme-contributing)
    -   [警卫](https://npmcn.com/package/%40alessiofrittoli/type-utils/#readme-security)
-   [工具类型](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md)
    -   [数值](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#valueof)
    -   [关键值](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#valueofkey)
    -   [可选键](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#optionalkey)
    -   [仅读](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#readonly)
    -   [可写](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#writeable)
    -   [重命名关键字](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#renamekey)
    -   [深边](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#deeppartial)
    -   [满](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#full)
    -   [深点](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#deepfull)
    -   [不可打开字段](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#nonnullablefields)
    -   [已合并的EnumValue](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#mergedenumvalue)
    -   [卸载多键](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#unflatdotkeys)
    -   [递归式去平面点键](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#recursivelyunflatdotkeys)
    -   [参数类型](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md#argumenttypes) (折旧)
-   [扩展器类型](https://github.com/alessiofrittoli/type-utils/blob/master/docs/extenders/README.md)
    -   [贾森](https://github.com/alessiofrittoli/type-utils/blob/master/docs/extenders/README.md#json)
        -   [JSON. stringify <T> ()](https://github.com/alessiofrittoli/type-utils/blob/master/docs/extenders/README.md#jsonstringifyt)
        -   [JSON.parse <T> ()](https://github.com/alessiofrittoli/type-utils/blob/master/docs/extenders/README.md#jsonparset)
    -   [体质](https://github.com/alessiofrittoli/type-utils/blob/master/docs/extenders/README.md#body)
        -   [车体.json<T> ()](https://github.com/alessiofrittoli/type-utils/blob/master/docs/extenders/README.md#bodyjsont)
-   [贷项](https://npmcn.com/package/%40alessiofrittoli/type-utils/#readme-made-with-)

* * *

### 开始

运行以下命令开始使用 `type-utils` 在您的项目中:

```bash
npm i @alessiofrittoli/type-utils
```

或使用 `pnpm`

```bash
pnpm i @alessiofrittoli/type-utils
```

#### 使用工具类型

工具类型从包入站出口,必要时可被导入:

```ts
import type { DeepPartial, ValueOf } from '@alessiofrittoli/type-utils'
```

见 [工具类型](https://github.com/alessiofrittoli/type-utils/blob/master/docs/utils/README.md) 完整名单.

#### 全球扩展器设置

[扩展器类型](https://github.com/alessiofrittoli/type-utils/blob/master/docs/extenders/README.md) 增强内置全球接口(例如: `JSON` 财务报告和审定财务报表 `Body`),它们是本库定义的唯一全球性类型. 全局类型默认不会被您的 IDE 装入 .

安装后a `postinstall` 脚本执行以创建( 或更新) `globals.d.ts` 在工程根上的文件,添加以下全局类型引用:

```ts
/// <reference types="@alessiofrittoli/type-utils/globals" />
```

如果文件被您的项目的 TypeScript 程序忽略, 请手动添加 `globals.d.ts` 在您的“ 包含” 属性的数组中 `tsconfig.json`。 。 。 .

```json
{
    "compilerOptions": {
        ...
    },
    "include": [ ..., "globals.d.ts" ],
}
```

如果 `*.ts` 已经存在于您的“ 包含” 阵列中.

如果 `globals.d.ts` 文件创建失败, 您可以运行以下命令来手动执行脚本 :

```bash
node node_modules/@alessiofrittoli/type-utils/scripts/postinstall/index.cjs
```

如果您不想使用全局扩展器, 请从您的上面删除引用 `globals.d.ts` 文档。 通用型自明确进口后将持续工作.

* * *

### 发展

运行以下开始开发

```shell
nvm use

pnpm i
```

#### 地方发展

运行以下

```shell
pnpm dev
```

这将生成未忽略的输出代码, 源图并启用源文件监视器 .

* * *

#### 生产建设

运行以下来创建本地生产建筑

```shell
pnpm build
```

这将插入和键入源代码, 然后生成不显示源代码的已修改输出代码 .

* * *

#### 林特

运行警告和错误检查 [奥克林特](https://oxc.rs/docs/guide/usage/linter)数字 :

```shell
pnpm lint
```

* * *

#### 捐款

献礼真受欢迎!

请参看 [贡献文件](https://npmcn.com/package/%40alessiofrittoli/type-utils/CONTRIBUTING.md) 了解如何开始为该项目作出贡献的更多信息.

帮助更新此项目 [GitHub 赞助商](https://github.com/sponsors/alessiofrittoli)。 。 。 .

[![GitHub Sponsor](https://img.shields.io/static/v1?label=Fund%20this%20package&message=%E2%9D%A4&logo=GitHub&color=%23DB61A2)](https://github.com/sponsors/alessiofrittoli)

* * *

#### 警卫

如果你认为你发现了安全漏洞 我们鼓励你 **_负责地披露此事,不公开问题_**我们将调查所有合法的报告。 电子邮件 `security@alessiofrittoli.it` 披露任何安全弱点.

* * *

### 由 所制

<table><tbody><tr><td><img alt="avatar" src="https://avatars.githubusercontent.com/u/35973186" loading="lazy" decoding="async" referrerpolicy="no-referrer"></td><td><table><tbody><tr><td><a href="https://github.com/alessiofrittoli" rel="nofollow noopener noreferrer">阿莱西奥·弗里托利</a></td></tr><tr><td><small><a href="https://alessiofrittoli.it/" rel="nofollow noopener noreferrer">https://alessiofrittoli.it (英语)</a> | <a href="mailto:info@alessiofrittoli.it" rel="nofollow noopener noreferrer">(原始内容存档于2018-10-21) (英语). info.it</a></small></td></tr></tbody></table></td></tr></tbody></table>

## 常见问题

### @alessiofrittoli/type-utils 是什么？

轻量级类型Script 工具

### 如何安装 @alessiofrittoli/type-utils？

在项目目录运行 npm install @alessiofrittoli/type-utils，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@alessiofrittoli/node-scripts（^4\.2\.0）、@alessiofrittoli/chain-functions（^2\.8\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @alessiofrittoli/type-utils 支持 TypeScript 吗？

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

### @alessiofrittoli/type-utils 支持 ESM 还是 CommonJS？

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

### @alessiofrittoli/type-utils 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=24\.15\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @alessiofrittoli/type-utils 可以商用吗？

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

### @alessiofrittoli/type-utils 的下载量有多少？

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

### @alessiofrittoli/type-utils 还在维护吗？

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

