编辑:我没有意识到错误消息甚至不是来自 ESLint,而是来自Visual Studio Code中称为 [js] 的东西。我会删除这个问题,但它可能会帮助其他人也将 [js] 输出误认为 ESLint。还是很想知道这[js]
东西是个什么样的过程。
我的任务是定义一个项目范围的 .eslintrc.js 文件,以确保团队的代码符合通用标准。
使用预设运行 ESLinteslint:recommended
会给我以下错误消息
The property "parentNode" does not exist for the type "EventTarget".
这是有问题的代码:
window.addEventListener('keydown', event => {
const currentTag = event.target.parentNode.tagName;
/* ... */
})
我知道可能有event.target
s不是 HTMLElement
s,但是我应该如何编码 - 或配置 ESLint - 所以这条线不再产生 ESLint 错误?只要 ESLint 报告任何错误,我们就计划让我们的构建失败,因此必须解决这个问题。
导致类似错误的第二行代码:
document.activeElement.click();
导致 ESLint 错误
The property "click" does not exist for the type "Element".
第三个例子:
const rows = this.childNodes[1].querySelectorAll('tr');
投掷
The property "querySelectorAll" does not exist for the type "Node & ChildNode".
注意:请不要建议使用 flow 或 Typescript,代码将保持纯 ES6(我理解ES Lint 是为了)。