mcpField
T
typescript-best-practices

typescript-best-practices

github.com/poteto开发161113 次安装22 周前更新
代码仓库

关于 typescript-best-practices

为编码 Agent 提供 TypeScript 类型系统规范的技能,强调边界校验、精确建模与穷尽性检查,帮助减少不安全类型操作。

主要功能

  1. 01使用判别联合表达变体
  2. 02用品牌类型区分原始值
  3. 03优先使用 unknown 而非 any
  4. 04限制断言并强调数据校验
  5. 05检查分支穷尽性
  6. 06从 Schema 推导类型

适用场景

  1. 01为外部输入设计边界校验
  2. 02建模状态变体并避免无效状态
  3. 03审查类型守卫与断言
  4. 04为函数参数选择对象形式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/poteto/plugins --skill typescript-best-practices

安装后在 Claude Code 中输入/typescript-best-practices确认已加载。

附带文件references/patterns.md

详细介绍

TypeScript 最佳实践

请先应用 type-system-discipline 原则技能;该技能将此原则落实到 TypeScript 语法中。

规则概要
可辨识联合使用 kind 字面量判别字段对变体建模,确保无法表示不可能的状态。不要使用包含可选字段的对象。
品牌类型使用 & { readonly __brand: "X" } 为原始类型添加品牌,避免混淆。创建时验证一次。
优先使用 unknown,而非 any外部数据的类型是 unknown。any 会在所有涉及它的地方禁用类型检查。
不使用 as 类型断言每个 as 都可能引发运行时崩溃。仅在验证后才进行类型断言。
类型收窄层级判别字段 switch > in 运算符 > typeof/instanceof > 用户定义的类型守卫 > as。
类型守卫必须验证所声明的判断。说谎的类型守卫比 as 更糟糕,因为错误会藏在一个看似安全的名称后面。将其命名为 isX 或 hasX。
穷尽性检查在 default 分支中内联 const _exhaustive: never = x;,这样添加新变体时编译器就会报错。
优先使用 satisfies,而非 as验证值,同时避免扩大字面量类型。
边界验证在数据进入系统时验证;在内部信任类型。参见 boundary-discipline 原则技能。
从 schema 派生类型声明新接口前,优先考虑使用 Pick/Omit/Parameters/ReturnType/Awaited/typeof。
对象参数传递对象而非位置参数,让参数顺序一目了然。在高频路径中除外(逐帧渲染、分词器、解析器)。

示例:references/patterns.md。

评论

支持 Markdown