我应该如何在JS中将方法标记为"过时"?

JBG*_*JBG 42 javascript refactoring

我正在重构一个相当大的JS文件,其中包含许多不相关的方法,根据它们的用法将这些方法重新组合在一起,并根据需要重命名其中一些(以防止误导名称).

但是,实际使用此代码的大多数网页分布在不同的代码分支中,阻止我进行简单的查找和替换.我可以在所有不同的分支中执行此操作,但这需要同时在30多个分支中进行维护,或者可能忘记在其他分支(由我或其他团队成员)合并更改后执行重命名.

如果这是C#,我可以用[Obsolete]标记方法,它会根据需要标记必要的更改,所以我正在寻找一些相当的东西.我仍然会通过将调用重定向到新方法来提供旧接口的功能一段时间,但我想"迫使"人们因为其他原因在页面上工作时切换到新界面.

有没有其他方法可以做类似的事情,除了debugger; 为每个方法添加一个语句和一个详细的注释,以便它在开发时而不是在生产中中断?

Jor*_*dão 72

在过渡期你可以做几件事.

  1. 添加@deprecated JSDoc标志.
  2. 添加控制台警告消息,指示该函数已弃用.

一个样品:

/**
 * @deprecated Since version 1.0. Will be deleted in version 3.0. Use bar instead.
 */
function foo() {
  console.warn("Calling deprecated function!"); // TODO: make this cross-browser
  bar();
}
Run Code Online (Sandbox Code Playgroud)