# @dasch-ng/utils 中文文档

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

版本：0\.6\.2
npm 元数据更新时间：2026-11-10T16:19:21.354Z
中文译文更新时间：2026-11-11T12:21:25.452Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：177 kB，11 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：@fxts/core \>= 0\.20\.0，@angular/core ^21\.0\.0 \|\| ^22\.0\.0，@angular/common ^21\.0\.0 \|\| ^22\.0\.0，@angular/platform-browser ^21\.0\.0 \|\| ^22\.0\.0
- 首次发布：2023-05-14T13:12:46.909Z
- 最新版本发布：2026-11-10T16:19:21.070Z
- 近 30 天下载量：2316（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 4 个）

## 中文简介

收集了有用的Angular设施,包括独立的管线、依赖性注射器和型号警卫。 由现代Angular图案和全TypeScript支持而来.

## 安装

```sh
npm install @dasch-ng/utils
```

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

## README

# @ dasch-ng/ utils

收集了有用的Angular设施,包括独立的管线、依赖性注射器和型号警卫。 由现代Angular图案和全TypeScript支持而来.

[![npm version](https://img.shields.io/npm/v/@dasch-ng/utils.svg)](https://www.npmjs.com/package/@dasch-ng/utils)

## 安装

```bash
npm install @dasch-ng/utils
```

或带面包:

```bash
bun add @dasch-ng/utils
```

## 特征

-   🔧 **独立管道** - 用于共同作业的可就绪管道
-   🎯 **类型安全** - 附有适当类型推论的完整类型脚本支持
-   📦 **可树动** - 只导入你需要的东西
-   🚀 **现代角** - 为有独立部件的角16+所建
-   🔄 **FxTS 整合** - 饮料 [@ fxts/ 分数](https://fxts.dev/) 水电费
-   💉 **DI 帮助者** - 简化依赖性注射模式

## 快速启动

```typescript
import { Component } from '@angular/core';
import { DecimalBytesPipe, ReversePipe, IsNilPipe } from '@dasch-ng/utils';

@Component({
  selector: 'app-example',
  imports: [DecimalBytesPipe, ReversePipe, IsNilPipe],
  template: `
    <p>File size: {{ 1536000 | decimalBytes }}</p>
    <!-- Output: "1.54 MB" -->

    <div *ngFor="let item of items | reverse">
      {{ item }}
    </div>
    <!-- Displays items in reverse order -->

    <div *ngIf="data | isNil">No data available</div>
  `,
})
export class ExampleComponent {
  items = ['a', 'b', 'c'];
  data: string | null = null;
}
```

## 可用公用事业

### 管道

**阵列操纵 :**

-   `reverse` - 无变异的倒置阵列
-   `join` - 用分隔符加入数组元素
-   `nth` - 从可移动的元素中获取 nth 元素
-   `sortBy` - 按财产排序(对大小写不敏感)

**收藏公用事业:**

-   `size` - 获得任何可移动的大小
-   `includes` - 检查数组是否包含值
-   `includedIn` - 检查值是否为数组
-   `without` - 从数组中删除值
-   `values` - 地图、集或对象的数值,按插入顺序排列

**对象工具 :**

-   `prop` - 从对象提取属性
-   `omit` - 复制一个没有密钥的对象
-   `parseJson` - 剖析杰森, `null` 而不是例外

**类型检查 :**

-   `isNil` - 检查无效或未定义
-   `isNull` - 检查无效
-   `isUndefined` - 检查未定义
-   `isEmpty` - 检查值是否为空

**格式化 :**

-   `decimalBytes` - 人类可读大小格式字节
-   `binaryBytes` - 有底数 1024 (KiB, MiB) 的格式字节

**文本 :**

-   `truncateText` - 文字在字边界上缩短
-   `middleTruncate` - 在中间分出一条线来表示椭圆
-   `highlight` - 将文本拆分成匹配的段落以搜索术语
-   `upperFirst` - 大写第一个字符,地方意识

**公用事业:**

-   `symbolKeyFor` - 获取全球符号的钥匙

**内接管** (单位:千美元)`@dasch-ng/utils/intl`,没有 `registerLocaleData()` 所需:

-   `intlNumber`, (中文(简体) ), `intlCurrency` (与 `minorUnits` 以美分计, `intlDate`, (中文(简体) ), `intlDateRange`, (中文(简体) ), `intlRelativeTime`, (中文(简体) ), `intlList`, (中文(简体) ), `intlPlural`, (中文(简体) ), `intlDisplayName`, (中文(简体) ), `intlDuration`, (中文(简体) ), `intlBytes`, (中文(简体) ), `intlLocalized`, (中文(简体) ), `intlCanonicalLocale`

```typescript
import { IntlCurrencyPipe, IntlRelativeTimePipe } from '@dasch-ng/utils/intl';
```

**媒体管道** (单位:千美元)`@dasch-ng/utils/media`:

-   `frameRate`, (中文(简体) ), `shutterSpeed`, (中文(简体) ), `coordinate`, (中文(简体) ), `aspectRatio`, (中文(简体) ), `codecName`, (中文(简体) ), `pixelFormat`

### 职能

**依赖注射帮助者:**

-   `provideValue` - 创建类型安全的价值提供者
-   `provideFactory` - 创建安全型工厂供应商
-   `provideClass` - 创建类型安全类供应商
-   `provideExisting` - 创建安全型现有供应商(别名)
-   `provideType` - 创建类型安全构造器提供者

**资源公用事业:**

-   `resourceValueGuard` - 从角资源提取安全价值

**事件修改器 :**

-   `provideEventModifiers` - 说吧 `(click.stop)`, (中文(简体) ), `(click.prevent)`, (中文(简体) ), `(click.self)` 和组合像 `(click.stop.prevent)` 在模板中

**过度流检测 :**

-   `OverflowDirective` (单位:千美元)`[daschNgOverflow]`) - 说明文本是被椭圆还是被行夹所剪去,例如只显示工具提示

## 文档

完整的文件可在 [达什.ng](https://dasch.ng/libraries/ng-utils)

## API 参考

TypeDoc API 文档 : [dasch.ng/api/@dasch-ng/utils (中文(简体) )](https://dasch.ng/api/@dasch-ng/utils/README)

## 许可证

麻省理工学院

## 运行单元测试

运行 `nx test ng-utils` 执行单元测试.

## 常见问题

### @dasch-ng/utils 是什么？

收集了有用的Angular设施,包括独立的管线、依赖性注射器和型号警卫。 由现代Angular图案和全TypeScript支持而来\.

### 如何安装 @dasch-ng/utils？

在项目目录运行 npm install @dasch-ng/utils，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@fxts/core（\>= 0\.20\.0）、@angular/core（^21\.0\.0 \|\| ^22\.0\.0）、@angular/common（^21\.0\.0 \|\| ^22\.0\.0）、@angular/platform-browser（^21\.0\.0 \|\| ^22\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @dasch-ng/utils 支持 TypeScript 吗？

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

### @dasch-ng/utils 支持 ESM 还是 CommonJS？

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

### @dasch-ng/utils 可以商用吗？

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

### @dasch-ng/utils 的下载量有多少？

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

### @dasch-ng/utils 还在维护吗？

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

