SuperAPI AI 工具集

typescript-write

编程与开发

查看项目

更新于 10-15 09:54

技能介绍

用途

typescript-write 是一个 TypeScript/JavaScript 开发技能,用于把团队内部的编码标准应用到日常应用开发工作中。它适用于编写新的 TypeScript 或 JavaScript 文件、重构现有 TS/JS 代码、审查代码的类型安全与最佳实践、将 JavaScript 转换为 TypeScript、设计模块 API 与类型接口,以及修复类型错误或提升类型覆盖率。

主要能力

该技能以规则加代码示例的形式,覆盖以下方面:

  • 代码风格:命名约定(变量、函数、参数用 camelCase;类型、接口、类、枚举、React 组件用 PascalCase;常量与枚举成员用 UPPER_SNAKE_CASE;布尔变量使用 is、has、should、can 前缀;事件处理器使用 handleClick、onSubmit 模式)。
  • 文件组织:尽量每个文件一个主要导出;相关类型与实现放在一起;barrel 导出(index.ts)仅用于公共模块 API,避免深层 barrel 再导出;工具文件用 kebab-case.ts,React 组件用 PascalCase.tsx。
  • 导入顺序:依次为 Node 内置模块、外部包、内部别名、相对导入、仅类型导入,每组之间空一行。
  • TypeScript 模式:启用 strict: true 且不单独关闭严格检查;无解释性注释时不得使用 // @ts-ignore 或 // @ts-expect-error;优先使用 unknown 而非 any 并通过类型守卫收窄;对象形状优先 interface,联合、交叉、映射与工具类型优先 type;使用 readonly 与 as const;使用可辨识联合、类型守卫、泛型约束与内置工具类型(Partial、Required、Pick、Omit、Record、Extract、Exclude);简单集合优先字符串联合类型,按需选择 const enum 或普通 enum。
  • React 模式:函数组件 props 的类型标注;Hooks 只能在顶层调用,自定义 Hook 以 use 开头,准确指定依赖数组且不抑制 exhaustive-deps;useCallback 用于传给被 memo 子组件的函数,useMemo 用于昂贵计算;状态尽量就近放置,复杂状态用 useReducer,Context 用于真正全局的状态;正确标注事件处理器类型。
  • 测试:测试文件命名为 *.test.ts 或 *.spec.ts 并与源文件同目录,或放在镜像源结构的 tests/ 目录;给出 describe/it 结构与断言模式(原始值用 toBe,对象/数组用 toEqual,错误用 toThrow,spy/mock 用 toHaveBeenCalledWith,优先具体匹配器);mock 外部依赖而非内部实现,使用 vi.fn()/jest.fn() 与 vi.spyOn/jest.spyOn,并在 beforeEach 重置或在 afterEach 恢复。
  • 常见反模式:用 any 代替正确类型、过度使用非空断言、barrel 文件性能问题、忽略返回类型、修改函数参数。
  • 错误处理:Result 模式、异步错误处理(await 调用加 try/catch、不在同一 promise 链上混用 .catch() 与 await、库代码优先返回错误结果、只在边界记录错误)、React 错误边界、类型化错误类。

使用方式

该技能在编写或审查 TypeScript/JavaScript 代码时触发,包括类型、泛型、异步等场景。资料未提供具体的安装命令、调用命令或配置方式,暂未提供。

适用场景

适用于日常应用开发中的 TS/JS 编写、重构、代码审查、JS 转 TS、模块 API 与类型接口设计、类型错误修复与类型覆盖率提升。

限制

资料未说明该技能的运行环境、依赖、平台支持、收费方式或效果保证,暂未提供。