关于 node-typescript
为 TypeScript 项目配置编译器选项的技能,强调明确设置并匹配代码的使用方式。它涵盖库与应用配置、类型检查门禁以及逐步启用严格检查。
主要功能
- 01明确的 tsconfig 选项
- 02库与应用配置指南
- 03类型检查脚本和 CI 门禁
- 04渐进式严格化方案
- 05声明文件生成指导
适用场景
- 01配置供使用者消费的 Node 软件包
- 02为打包应用设置 TypeScript
- 03在现有代码库中逐步启用严格检查
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ paldom/ node-skills --skill node-typescript安装后在 Claude Code 中输入/node-typescript确认已加载。
附带文件evals/evals.jsonreferences/tsconfig-playbook.md
详细介绍
node-typescript
生成的 TypeScript 配置应当明确、严格,并符合代码的使用方式。此技能解决的问题:模型照搬 tsconfig,而其中的隐式默认值会随 TypeScript 主版本变化;为未打包的 Node 包选择 bundler 解析方式(导致使用者无法正常使用);以及在大型代码库中一次性开启严格模式,导致改动无法审查。
不适用场景
- Lint/格式规则 →
node-lint。 - 打包和
exports映射/使用者类型解析 →node-packaging(此技能负责声明文件的生成;打包技能负责使用者如何解析声明文件)。 - 测试运行器的 TS 支持 →
node-testing。
工作流
- 首先遵循配置显式原则。 绝不依赖生成的默认值或版本默认值——TypeScript 主版本曾多次更改这些值。应按照
references/tsconfig-playbook.md中的配置块,明确写出每个重要选项。 - 根据使用方式选择配置,而不是追逐潮流:
- 已发布/未打包的 Node 包 → 选择
nodenext系列的module/moduleResolution;启用verbatimModuleSyntax;设置declaration+declarationMap;在 API 表面允许的情况下启用isolatedDeclarations(支持并行且与工具无关的声明文件生成)。 - 打包的应用代码 → 使用
bundler解析方式并设置noEmit(由打包器生成文件)。
- 已发布/未打包的 Node 包 → 选择
- 加入门禁:将
tsc --noEmit(或项目引用使用-b)设为脚本和 CI 任务(接线 →node-ci)。 - 现有代码库的严格化应逐步推进,而不是一次性切换:先评估错误范围,再逐步启用选项(逐个选项或逐个目录),并通过禁止新增错误的规则保持 CI 通过。具体顺序见操作手册。
- 验证:运行
tsc --noEmit并确保没有错误;对于已发布的包,确认声明文件能够生成,并将使用者解析验证交由node-packaging的门禁处理。
输出规范
明确写出每个关键选项的 tsconfig;类型检查脚本和 CI 门禁;对于库,生成带映射的声明文件;说明选择模块和解析方式的理由;如适用,提供包含可衡量检查点的严格化计划。
注意事项
- 直接由 Node 使用的包若采用
bundler解析方式,本地类型检查可能通过,但使用者会遇到问题——始终根据使用方式做出选择。 verbatimModuleSyntax会要求类型专用导入必须使用import type,并限制 CJS 输出中的默认导出——应与 codemod 一起启用。isolatedDeclarations要求导出的 API 显式声明返回类型——对库很有用,对应用则可能带来大量噪声;不要盲目将其加入应用配置。- TypeScript 7(原生编译器,2026 年 7 月 GA)是
typescript@latest安装的版本;显式 tsconfig 仍能保持兼容,但 6.0 弃用的功能(baseUrl、target: es5、moduleResolution: classic)在 7 中会成为硬错误——操作手册列出了这些功能,以及适用于依赖 API 的工具的@typescript/typescript6回退方案。 - 版本门禁:每次 TypeScript 主版本变化时,都要根据官方 TSConfig 参考文档重新验证默认值和选项行为。
文件
references/tsconfig-playbook.md— 显式配置块(库/应用)、nodenext 与 bundler 的选择、严格化步骤、验证命令。
评论
支持 Markdown