我碰巧将一个变量命名为与 Node.js 中的函数相同的名称。这并不顺利,Node 10 不喜欢它。由于这是一个钩子函数(不是从应用程序的 UI 调用),我花了一些时间才发现出了什么问题。是否有一些 ESLint 规则可以发现这些类型的错误?这是在 Firebase 下,并且 ESLint 在部署到生产服务器期间运行。实际的冲突使用的变量名的是同一块,像这样:const a = a(x)。
2 回答
FFIVE
TA贡献1797条经验 获得超6个赞
我不认为这样的工具可能存在的JavaScript,如JavaScript并没有真正消除歧义赋给变量对象的类型。
function a() {
}
...基本上相当于:
var a = function () {
};
此外,a此示例中的值可以稍后重新分配。
linter 可能会帮助你,在一些 IDE 中可能会有一些帮助,但他们不会真正了解程序员的意图。
慕田峪7331174
TA贡献1828条经验 获得超13个赞
有一个无重复声明的规则,你可以在设置ESLint,它告诉你在你的代码有问题的行。
/*eslint no-redeclare: "error"*/
function a() {}
const a = a();
=> 4:5 error 'a' is already defined no-redeclare
此外ESLint会引发与错误的标准配置。
function a() {}
var a = a();
=> 4:5 error Parsing error: Identifier 'a' has already been declared
当然,使用const,如果您尝试运行脚本,您也会收到该行的语法错误。
添加回答
举报
0/150
提交
取消