关于 coding-typescript
coding-typescript 是面向 TypeScript 5.x 开发的技能,涵盖类型安全、复杂类型逻辑和 tsconfig 配置。适用于开发、调试、代码审查以及将 JavaScript 迁移到 TypeScript 的工作。
主要功能
- 01配置 strict 模式
- 02编写泛型与装饰器
- 03使用映射类型和条件类型
- 04应用实用类型
- 05配置 tsconfig 编译选项
适用场景
- 01为 React 或 Node.js 项目实现类型安全
- 02将旧版 JavaScript 代码迁移到 TypeScript
- 03调试 TypeScript 类型错误
- 04审查或重构 TypeScript 代码
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill coding-typescript安装后在 Claude Code 中输入/coding-typescript确认已加载。
详细介绍
coding-typescript
目的
此技能可帮助 AI 进行 TypeScript 5.x 开发,重点涵盖严格模式、泛型、装饰器、映射类型与条件类型、工具类型以及 tsconfig 配置等高级特性。可用于实时生成、调试和优化 TypeScript 代码。
适用场景
在需要类型安全的项目中使用此技能,例如使用 React 的 Web 应用或 Node.js 后端。可用于代码审查、将遗留 JavaScript 重构为 TypeScript,或在严格模式环境中实现复杂的类型逻辑。除非计划迁移,否则不适用于纯 JavaScript 项目。
主要能力
- 通过 tsconfig 启用严格模式:在 tsconfig.json 中设置
"strict": true,以捕获隐式 any 等错误。 - 使用泛型:定义可复用的函数,例如
function identity<T>(arg: T): T { return arg; }。 - 使用装饰器:应用来自 Angular 等框架的
@Component类装饰器。 - 使用映射类型:创建
type Partial<T> = { [P in keyof T]?: T[P]; }等类型。 - 实现条件类型:使用
type IsString<T> = T extends string ? true : false;等结构。 - 利用工具类型:应用
Omit<T, K>或Pick<T, K>操作类型。 - 配置 tsconfig:指定
"target": "es2022"和"module": "esnext"等构建选项。
使用模式
要完成任务,请在查询前加上技能 ID 来调用此技能,例如:“使用 coding-typescript 编写一个泛型数组筛选函数。”请求中务必注明具体的 TypeScript 版本信息(5.x)。生成代码时,请提供上下文,例如:“生成一个在严格模式下使用装饰器的 TypeScript 类。”调试时,请提供错误消息和代码片段,以便有针对性地修复。与 IDE 集成时,请引用 tsconfig 路径,例如在 AI 辅助编辑前运行 tsc --project ./tsconfig.json。
常用命令/API
使用以下 TypeScript CLI 命令执行任务:
- 使用严格模式编译:
tsc --strict index.ts,以启用所有严格选项。 - 监视更改:
tsc -w --noEmitOnError,用于监视文件,并在发生错误时阻止输出文件。 - 生成声明文件:
tsc --declaration,以输出类型对应的 .d.ts 文件。 对于 API 用法,可在代码中参考 TypeScript 编译器 API:从 'typescript' 导入,并使用ts.createProgram()进行编程式编译。如果涉及 ESLint 等外部工具,可设置$TSCONFIG_PATH等环境变量来使用自定义配置。泛型函数代码片段:
function reverse<T>(array: T[]): T[] {
return array.reverse();
}
装饰器的用法如下:
function logged(target: any) { console.log(target); }
@logged
class Example {}
集成说明
将此技能集成到 Node.js 项目时,请确保通过 npm install [email protected] 安装 TypeScript。对于相关服务的身份验证(例如从远程 API 获取类型时),请在脚本中使用 $TYPESCRIPT_API_KEY 等环境变量。在 tsconfig.json 中为模块添加路径:"paths": { "@app/*": ["src/*"] }。与其他技能结合使用时,可串联输出,例如先使用 "coding-javascript" 处理 JavaScript 部分,再将结果传递给此技能进行 TypeScript 转换。请通过指定 ES 模块来确保兼容性:设置 "module": "esnext",并使用 Webpack 等打包工具。
错误处理
处理 TypeScript 错误时,务必启用严格模式,并使用 tsc --pretty 获取易读的输出。对于类型错误,请检查具体信息,例如 "Type 'string' is not assignable to type 'number'",并通过代码片段提出修复建议。在运行时代码中实现 try-catch,例如:
try {
const result = someFunction(); // Assume it might throw
} catch (error) {
console.error(`Error: ${(error as Error).message}`);
}
对于构建错误,请使用 --diagnostics 重新运行 tsc,以获取详细报告。如果 AI 生成的代码无法运行,请附上确切的错误消息重新查询,例如:“修复以下代码中的 TypeScript 错误:'TS2322: Type X is not assignable to type Y':[snippet]”。
具体使用示例
-
示例 1:生成通用实用类型
查询:“使用 coding-typescript 创建一个映射类型,使接口的所有属性都变为可选。”
响应:生成类似type Optional<T> = { [K in keyof T]?: T[K]; }的代码。然后应用它:interface User { name: string; age: number; } type PartialUser = Optional<User>;。 -
示例 2:配置 tsconfig 以启用严格模式
查询:“为项目配置启用严格模式和装饰器的 tsconfig.json。”
提供:创建一个包含{ "compilerOptions": { "strict": true, "experimentalDecorators": true, "target": "es2022" } }的文件。然后运行tsc --project tsconfig.json进行验证。
图关系
- 关联到集群:“coding”(例如,链接到 “coding-javascript” 以共享模式)。
- 标记为:“typescript”、“ts”、“coding”(关联到 “coding-react” 等基于 TypeScript 的框架相关技能)。
- 依赖项:需要 “general-coding” 提供基础语法,并与 “tooling-npm” 集成以进行包管理。