SuperAPI AI 工具集

typescript-satisfies-operator

编程与开发

查看项目

更新于 10-15 21:42

技能介绍

用途:帮助判断在 TypeScript 代码中何时使用 satisfies、: Type 类型标注、as const satisfies、as 类型断言,或干脆依赖类型推断。

核心规则:当值的具体性应被保留时用 satisfies;当变量应使用更宽泛类型时用 : Type;只读的字面量配置可用 as const satisfies;除非是有意作为逃生舱,否则避免 as Type;枚举式映射可结合 Record<Union, Value> 与 satisfies 实现穷举校验。

心智模型:: Type 让类型胜出、值可能被拓宽;satisfies Type 让值胜出、同时校验形状;as Type 是让 TypeScript 信任你;无标注则仅作推断。

典型写法:const localeIds = { en: "1", cs: "2" } as const satisfies Record<Locale, string>;对象校验场景如 const palette = { red: [255,0,0], green: "#00ff00", blue: [0,0,255] } satisfies Record<Colors, string | RGB>,之后可安全调用 palette.green.toUpperCase()。

适用场景:路由映射、语言区域映射、功能开关配置、状态标签、事件处理器映射、设计令牌对象等需要校验形状又保留字面量精度的配置。

限制与避免:不要标注配置对象导致所有字面量被拓宽;当后续需要重新赋值为更宽类型时不要用 satisfies;不要在类型标注之后使用 as const 还期望字面量保留。资料未提供安装命令或平台要求。