用途:这是一份 TypeScript 编码规范技能,声明在阅读或编辑任何 .ts、.tsx 文件时使用,先应用“类型系统纪律”原则技能,再用 TypeScript 语法落地。
主要能力与规则:用带 kind 字面量判别字段的判别联合建模变体,避免可空字段堆砌;用 & { readonly __brand: "X" } 品牌化原始类型并只在创建时校验一次;做构造性建模,让非法值无法被构造,如 [T, ...T[]] 表示非空、[T, T][] 表示偶数长度、起点加时长表示区间;优先保持最简单的全函数类型,只有在 T[] 迫使使用 !、断言或“不应发生”抛错时才收紧为 NonEmpty<T>;外部数据视为 unknown,不用 any;原则上不用 as 断言,仅在校验后断言;收窄优先级为判别 switch > in 运算符 > typeof/instanceof > 自定义类型守卫 > as;类型守卫必须真正验证,命名用 isX 或 hasX;用 const _exhaustive: never = x; 放在 default 分支实现穷尽性检查;用 satisfies 而非 as 以免拓宽字面量类型;在数据边界解析为具名领域类型,交由 Record<string, unknown> 承载,越界后信任类型;优先用 Pick/Omit/Parameters/ReturnType/Awaited/typeof 派生类型而非新声明接口;参数传对象而非位置参数以便自解释,热路径(逐帧渲染、分词器、解析器)可例外;尽量运行真实测试原语并用泄漏/可释放检查,只在无法本地运行时才 mock;使用带足够上下文的结式日志,发布代码中不用 console.log。
使用方式:作为技能在编辑 TypeScript 文件时触发,参考 references/patterns.md 中的示例。
限制:资料未提供收费、平台支持范围、具体安装命令与版本要求信息。