javascript booster 能自动完成安全重构:convert to const/let、转箭头函数、替换模板字符串、转三元运算符、拆分声明与初始化。它基于语义分析,不误改注释、不破坏作用域、不引入未声明变量。

JavaScript Booster 是目前最直接提升 JS 代码管理水平的插件,它不靠提示、不靠格式化,而是把重构操作变成“光标一停、灯泡一按”的确定性动作。
JavaScript Booster 能自动完成哪些安全重构
它识别的是语义而非字符串,所以不会在注释里误改、不会破坏作用域、也不会引入未声明变量。常见可用操作包括:
-
Convert to const/Convert to let:基于赋值行为智能判断可否升级为const -
Convert to arrow function:只对无this/arguments/super引用的函数生效 -
Replace with template string:仅当拼接项全是字符串或基础类型时触发,避免${obj}这类隐式toString()风险 -
Replace with ?::要求 if-else 分支都只含单个赋值语句,且左右变量作用域一致 -
Split into declaration and initialization:会保留原始声明位置,初始化语句插入在首次使用前最近处
为什么不用 ESLint 或 Prettier 替代它
ESLint 告诉你“哪里错了”,Prettier 决定“怎么排版”,但它们都不回答“怎么改才既安全又现代”。比如 var 声明,ESLint 可能只报 no-var,但不会帮你选 const 还是 let;Prettier 格式化后仍是 var。而 JavaScript Booster 在光标悬停时就给出具体、可执行、带语义校验的选项。
它和 ESLint 是互补关系:eslint-config-prettier 关闭格式类规则,把空间留给 Booster 做语义级优化。
容易忽略的兼容性细节
这个插件对 TypeScript 支持有限——它只处理 .js 文件或未启用 TS 语言服务的 .ts 文件。如果你项目已启用 Volar 或 TypeScript Hero,Booster 的灯泡可能不出现。此时应优先用 Volar 自带的重构(如 “Extract to component”),或临时关闭 TS 语言服务测试 Booster 是否响应。
另外,它不支持 JSX 内联表达式中的重构(比如 {a === 1 ? 'x' : 'y'} 不会触发 Replace with ?: ),这类逻辑建议先提取到函数再用 Booster 处理。
真正影响代码长期可维护性的,不是语法高亮有多炫,而是每次修改是否可预测、可追溯、可逆。JavaScript Booster 把“改代码”这件事,从手动编辑拉回到了 IDE 级别的语义操作层面——这点,恰恰是多数开发者装了一堆插件却始终没解决的底层问题。











