# @canonical/typescript-config 中文文档

规范地址：https://npmcn.com/package/%40canonical/typescript-config/

版本：0\.44\.0
npm 元数据更新时间：2026-10-23T01:39:40.392Z
中文译文更新时间：2026-11-09T01:31:22.560Z
软件包许可：LGPL-3\.0

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

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

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

- 包体积（解压后）：25.6 kB，6 个文件
- TypeScript 类型：未声明
- 运行依赖：0 个
- peer 依赖：typescript ^5\.9\.3 \|\| ^6\.0\.0 \|\| ^7\.0\.0
- 首次发布：2026-02-10T13:26:23.664Z
- 最新版本发布：2026-10-23T01:39:39.913Z
- 近 30 天下载量：9471（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：34（近 12 个月 34 个）

## 中文简介

Canonical 的标准类型脚本配置

## 安装

```sh
npm install @canonical/typescript-config
```

也可以使用：`pnpm add @canonical/typescript-config`、`yarn add @canonical/typescript-config`、`bun add @canonical/typescript-config`

## README

# 条形字体配置

这个软件包为Canonical的TypeScript项目提供了中央配置.

反应项目见 [反应配置](https://www.npmjs.com/package/@canonical/typescript-config-react)。 。 。 .

## 开始

1.  安装打字符 : `bun add -d typescript`
2.  安装此配置 : `bun add -d @canonical/typescript-config`
3.  创建一个 `tsconfig.json` 在您的工程根中存档,并扩展此配置.

```json
{
  "extends": "@canonical/typescript-config"
}
```

## 配置

此配置允许以下行为 :

1.  [`ES2023` 图书馆](https://www.typescriptlang.org/tsconfig/#lib) 包含: `ES2023` typeScript 项目的库.
2.  [`NodeNext` 模块](https://www.typescriptlang.org/tsconfig/#module):为节点项目提供模块解析,同时提供CJS和无害环境管理支持.
    1.  明确导入文件扩展名( 例如 ), `./Button/index.js` 改为 `./Button`) (中文(简体) ).
3.  `ES2023` 目标: `ES2023` ECMAScript版本. 出自现代JavaScript语法,省去遗留变换和多填充.
4.  [严格模式](https://www.typescriptlang.org/tsconfig/#strict): 启用严格类型检查和若干其他严格性设置.

### 历史

此配置根植于 [Canonical React 组件打字符配置](https://github.com/canonical/react-components/blob/30cc5e338f1fbca75625a94993bccd6cf902fc28/tsconfig.json)。 。 。 . 它被普遍用于支持非反应性项目,并且更低等.

以下选项已经从原始配置中更改:

-   **`"module": "esnext"`** → `"module": "NodeNext"`:为了更严格的节点相容输出和模块分辨率,提高导入语法的一致性,并改进无害环境管理/CJS的互操作性.
-   **`"target": "es6"`** → `"target": "ES2023"`
-   **`"lib": ["dom", "dom.iterable", "esnext"]`** → `"lib": ["ES2023"]` (单位:千美元)`DOM` 如果浏览器项目需要,可以手动添加)
-   **`"strict": false`** → `"strict": true`
-   **`"noUnusedParameters": true`** + 按严格模式抵消
-   **`"noUnusedLocals": true`** + 按严格模式抵消
-   **`"noImplicitReturns": true`** + 按严格模式抵消
-   **`"noFallthroughCasesInSwitch": true`** + 按严格模式抵消
-   **`"skipLibCheck": true`** − 无法进行更严格的依赖类型检查
-   **`"esModuleInterop": true`** • 由 `"module": "NodeNext"`,将节点配置与无害环境管理互操作性相结合
-   **`"allowSyntheticDefaultImports": true`** • 禁用更严格的进口检查

### 洞穴

#### `NodeNext` 文选. `Node` 模块分辨率

在使用TypeScript的NodeNext模块分辨率时,TypeScript期望文件遵循Node.js的ES模块(ESM)分辨率规则,这需要明确的.js扩展来进行导入. 这一方法与无害环境管理公约相匹配,其中必须具体说明索引.js文件。 这与节点模块分辨率不同,该模块默认为CommonJS,允许目录导入而无需指定索引文件. 最佳做法:

```
Use Explicit File Extensions: With NodeNext, include file extensions (e.g., ./Button/index.js).
Maintain an index.ts for Exports: Collect all exports in a single index.ts at the package root for easier imports.
Consider the Module Type: Use Node resolution if CommonJS is preferred; otherwise, NodeNext for ESM compliance.
```

这种方法与Node.js和捆绑机都保持相容性.

换句话说,通过使用NodeNext,我们的目标是与ES模块规格相兼容,这需要明确导入 `mymodule/index.js` 文件而不是简单的 `mymodule/`。 。 。 .

## 常见问题

### @canonical/typescript-config 是什么？

Canonical 的标准类型脚本配置

### 如何安装 @canonical/typescript-config？

在项目目录运行 npm install @canonical/typescript-config，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：typescript（^5\.9\.3 \|\| ^6\.0\.0 \|\| ^7\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @canonical/typescript-config 支持 TypeScript 吗？

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

### @canonical/typescript-config 可以商用吗？

@canonical/typescript-config 使用 LGPL-3\.0 许可。弱 Copyleft：作为库被调用时通常不要求开源你自己的代码，但修改库本身需以 LGPL 开源；前端打包合并后的适用边界存在不同理解。以上为概括，不构成法律意见，请以许可原文为准。

### @canonical/typescript-config 的下载量有多少？

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

### @canonical/typescript-config 还在维护吗？

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

