mcpField
T
ts-best-practices

ts-best-practices

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

关于 ts-best-practices

这项 TypeScript 规范技能面向编写或审查 TypeScript 的开发者,列出更安全的类型建模、数据验证和穷尽处理规则。

主要功能

  1. 01避免不安全的类型断言
  2. 02优先使用 unknown 而非 any
  3. 03用可辨识联合建模变体
  4. 04采用经过验证的类型守卫与收窄
  5. 05检查 switch 分支是否穷尽

适用场景

  1. 01审查 TypeScript 中的不安全断言
  2. 02在边界处验证外部数据
  3. 03为不同变体的数据定义类型

安装

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

$npx skills add https://github.com/poteto/noodle --skill ts-best-practices

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

附带文件references/patterns.md

详细介绍

类型安全

本项目的 TypeScript 策略。编写或审查 TypeScript 时请遵循。

规则概要
不使用 as 类型断言每个 as 都可能导致运行时崩溃。在边界处进行验证,只有在有充分依据时才进行类型断言。优先使用 Zod/Valibot,而非手动验证。
使用 unknown 而非 anyany 会关闭其涉及的一切类型检查。外部数据始终是 unknown。
判别联合使用共享的字面量判别字段对变体建模。不要使用可选字段集合。
缩窄层级优先顺序:判别联合 switch > in 运算符 > typeof/instanceof > 类型守卫 > as
类型守卫必须实际验证所声称的类型。将其命名为 isX 或 hasX。如果可行,优先使用判别字段缩窄。
穷尽性检查对判别联合使用的 switch,始终添加 default: never 分支。使用 absurd() 辅助函数减少样板代码。
使用 satisfies 而非 as在验证值符合某类型且不扩大类型时,使用 satisfies 保留字面量类型。
不可能状态如果排查 bug 时需要问“这种组合会发生吗?”,说明类型过于宽松。应收紧类型。

请阅读 references/patterns.md,查看每条规则的代码示例。

评论

支持 Markdown