用途:在 TypeScript 项目中应用、审查或解释可辨识联合。可辨识联合是由共享同名字面量属性的对象类型组成的联合类型,检查该属性即可将值收窄到对应变体。工作流程:先检查使用仓库的约定和配置,显式仓库约定优先;只应用与当前任务相关的指导;当合适模型依赖上下文或判断时说明重要权衡。边界:只在变体互斥且各自需要不同数据时使用;属性可能独立缺失或仅值发生变化时不要强用;不引入无关的 TypeScript Style Guide 约定;交由 TypeScript 和 ESLint 自动检查能强制的内容。主要能力:减少依赖变体的可选属性,改为各变体的必填属性;配合 ESLint 规则 @typescript-eslint/switch-exhaustiveness-check 进行穷尽性检查(配置为 error);避免多个布尔标志表示互斥状态;提升代码意图清晰度、编译期正确性、重构维护性和 IDE 补全。典型应用:对象属性(将依赖变体的可选属性改为可辨识联合)、应用状态(如 idle/loading/success/error 避免同时持有 data 和 error)、函数参数(如 email/sms 通知参数)、React props(如 image/initials 头像变体)。限制:不应在有独立缺失可能时强用;本技能提供的是带观点的指导,仓库既有约定优先;具体项目配置与效果暂未提供。
typescript-discriminated-unions
编程与开发
更新于 10-16 06:48