用途:在编写或审查 TypeScript 类型、状态模型、可选值等场景中,提供一套类型约定,目标是让类型精确表达合法程序状态与边界,保留有信息量的推断,并显式收窄不确定性,使非法状态和未处理分支无法静默进入运行时。
主要能力:保留 TypeScript 的具体推断;仅在需要证明契约处添加注解,避免冗余注解漂移;在字面量推断边界声明预期状态集合;将持久化的封闭原始值集合建模为 const enum 而非字符串字面量联合;用 as const 保留 readonly 元组或字面量联合推断;用结构化符合满足形状而不丢失精确字面量。领域契约方面:默认用 interface 并以 extends 组合,type 仅用于 interface 难以自然表达的场景;把并行标志建模为可辨识变体,使不可能的状态组合无法出现;对封闭枚举或联合做穷尽决策。边界收窄方面:在接收 any 和 unknown 的边界内收窄或校验,防止其逃逸到调用方或领域状态;在序列化边界用运行时证明替代未检查断言;显式建立缺失值不变量而非用 ! 断言;可选参数省略即不传,仅在 API 要求位置值时传 void 0;调用前收窄必需的可选值;不要为缺失的必需输入编造默认值,除非领域契约赋予该省略值确切含义;在把索引数组值当作存在前先做守卫;保留 .split() 组件的缺失直到领域或展示策略解决;先校验必需的正则捕获,因为命名与位置分组都可能缺失。
使用方式:资料未提供具体安装命令或调用步骤,仅说明在编写或审查 TypeScript 前阅读与当前任务相关的参考内容。
适用场景:TypeScript 类型设计、状态建模、可选值与缺失值处理、序列化边界校验、代码审查。
限制:资料未提供收费、价格、平台支持或效果保证等信息。