用途:这是一条 TypeScript 编码规范技能,用于在编写或审查代码时,避免把同一个变量复用于不同用途或不同类型。核心原则是“一个变量、一个类型、一个用途”,不同概念应使用不同名称。
主要能力:识别因变量复用导致的类型错误;指出用联合类型(如 string | number)迁就重新赋值所带来的问题;建议改用独立变量并优先使用 const。资料指出,TypeScript 中变量类型通常固定,只有类型收窄(narrowing)是允许的,而试图拓宽类型会报错。
使用方式:当你想复用变量名、变量被赋予不同类型值、或为兼容重新赋值而使用联合类型时应用本技能。做法是为每个概念创建语义明确的 const 变量,例如分别用 productId 与 serial,而非共用一个 productId。资料也说明变量遮蔽(shadowing)虽在作用域上可行,但易造成困惑,建议改用不同名称。
适用场景:调试因变量复用产生的类型错误、重构含泛化变量名(如 temp、result)的代码、审查使用联合类型仅为允许重新赋值的写法。
限制:资料未提供具体工具、安装命令或自动化检测方式;内容基于《Effective TypeScript》第 19 条,属于编码建议而非可执行程序。