# @ember-compat/tracked-built-ins 中文文档

规范地址：https://npmcn.com/package/%40ember-compat/tracked-built-ins/

版本：0\.9\.1
npm 元数据更新时间：2024-01-03T16:56:26.227Z
中文译文更新时间：2026-11-13T14:48:31.005Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40ember-compat/tracked-built-ins
原文对照：https://npmcn.com/package/%40ember-compat/tracked-built-ins/?lang=original
项目主页：https://github.com/ember-migration-utils/tracked-built-ins-compat
源码仓库：https://github.com/ember-migration-utils/tracked-built-ins-compat

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

- 包体积（解压后）：80.4 kB，32 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：14\.\* \|\| 16\.\* \|\| \>= 18
- 运行依赖：2 个
- 首次发布：2022-11-09T14:52:28.925Z
- 最新版本发布：2022-11-16T19:53:32.451Z
- 近 30 天下载量：70734（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 0 个）

## 中文简介

JavaScript内置课的有轨版本! 基于履带式内置软件包,但有经典 Ember 的额外间接支持

## 安装

```sh
npm install @ember-compat/tracked-built-ins
```

也可以使用：`pnpm add @ember-compat/tracked-built-ins`、`yarn add @ember-compat/tracked-built-ins`、`bun add @ember-compat/tracked-built-ins`

## README

# @ember-compat/ tracked-build-ins (中文(简体) ) [![GitHub Actions Build Status](https://github.com/ember-migration-utils/tracked-built-ins-compat/workflows/CI/badge.svg)](https://github.com/ember-migration-utils/tracked-built-ins-compat/actions/workflows/CI.yml?query=branch%3Amain)

这个Ember加通是基于 [履带式安装](https://github.com/tracked-tools/tracked-built-ins) 塞顿. 它已经扩展到包括了对经典Ember的额外互通支持.

**说明:** 如果你遇到与 `@glimmer/validator` 依赖者,确认你是否正在使用 `embroider` 或者说 `ember-auto-import`

> \= 2.4.3 在您的主机应用程序中确保它被正确视为外部.

* * *

此加通提供了JavaScript内置的履带版本:

```js
import {
  TrackedObject,
  TrackedArray,
  TrackedMap,
  TrackedSet,
  TrackedWeakMap,
  TrackedWeakSet,
} from '@ember-compat/tracked-built-ins';
```

这些班级的API与其本地同等,但读自: 他们或写给他们,将追踪, 允许你用在你的琥珀 应用程序和更改自动传播!

还包括一个增强版的 `@tracked` 装饰器,哪个 自动浅析这些类的本地版本 :

```js
import { tracked } from '@ember-compat/tracked-built-ins';

class Foo {
  @tracked value = 123;

  obj = tracked({});
  arr = tracked([]);
  map = tracked(Map);
  set = tracked(Set);
  weakMap = tracked(WeakMap);
  weakSet = tracked(WeakSet);
}
```

**说明:** 这个加的 _没有_ 支持 IE 11 或更老的浏览器。 如果你需要支持他们, 考虑使用 [跟踪图和集](https://github.com/pzuraq/tracked-maps-and-sets) 换句话说.

## 安装

```
ember install @ember-compat/tracked-built-ins
```

## 使用量

请参看每个班级的 MDN 文档, 以了解更多情况:

-   [对象](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)
-   [阵列](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)
-   [地图](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map)
-   [设定](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set)
-   [弱图](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap)
-   [弱点设置](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet)

所有公共API都是相同的,只有少数例外:

1.  `new TrackedArray()` 应收到 _数组_ 而不是变量数 参数。 作出这一决定的原因是: `new Array()` 内 和对称性 `new` APIs (英语).
    
    ```js
    // bad
    new TrackedArray(123);
    new TrackedArray('foo', 'bar', 'baz');
    
    // good
    new TrackedArray([123]);
    new TrackedArray(['foo', 'bar', 'baz']);
    ```
    
2.  `new TrackedObject()` 返回 a _复制_ 那物体,曾递归它, 不过 `new Object()` 将返回 _原文_ 对象。 这是为了防止 意外地使原天体变异.
    
    ```js
    let original = {};
    let obj = new TrackedObject(original);
    
    obj.foo = 123;
    original.foo; // undefined;
    ```
    
3.  静态 `Array` 财务报告和审定财务报表 `Object` 不创建新矩阵/对象的方法 已省略。 一般来说,你应该使用原有的静态方法 这些特性,因为自动跟踪与它们无关. 静态 支持的方法有:
    
    -   `Array`
        -   `from`
        -   `of`
    -   `Object`
        -   `fromEntries`
    
    `Object.create` 尽管它创造了一个实例, 因为手动原型的操作 是一个先进的使用案例 目前不支持.
    

所有类型也将注册为 `instanceof` 它们的基础类型,所以它们可以 在多数情况下,作为完全透明的替换.

## 兼容性

-   Ember.js v3.24 (LTS) 或以上 (中文(简体) )
-   Ember CLI v3.23 或以上( 上)
-   节点.js v14 或以上

### 类型脚本

本项目沿用了目前起草的 [类型脚本的语义版本](https://www.semver-ts.org/) 规格.

-   **目前支持的 TypeScript 版本 :** v4.4, v4.5, 和 v4.6 (英语)
-   **编译支持政策 :** [简单主修](https://www.semver-ts.org/#simple-majors)
-   **公共 API :** 所有未在 a 中发表的类型 `-private` 模块是公开的

## 捐款

见 [捐款](https://npmcn.com/package/%40ember-compat/tracked-built-ins/CONTRIBUTING.md) 详细指南.

## 许可证

本项目根据以下规定获得许可证: [MIT 许可证](https://npmcn.com/package/%40ember-compat/tracked-built-ins/LICENSE.md)。 。 。 .

## 常见问题

### @ember-compat/tracked-built-ins 是什么？

JavaScript内置课的有轨版本\! 基于履带式内置软件包,但有经典 Ember 的额外间接支持

### 如何安装 @ember-compat/tracked-built-ins？

在项目目录运行 npm install @ember-compat/tracked-built-ins，或使用 pnpm add / yarn add / bun add。

### @ember-compat/tracked-built-ins 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/ember-compat\_\_tracked-built-ins 是否存在。

### @ember-compat/tracked-built-ins 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @ember-compat/tracked-built-ins 需要什么版本的 Node\.js？

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

### @ember-compat/tracked-built-ins 可以商用吗？

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

### @ember-compat/tracked-built-ins 的下载量有多少？

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

### @ember-compat/tracked-built-ins 还在维护吗？

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

