javascript - 如何配置 ESLint 以使用例如event.target 和 element.parentNode?

标签 javascript ecmascript-6 visual-studio-code eslint eslintrc

编辑:我没有意识到错误消息甚至不是来自 ESLint,而是来自 Visual Studio Code 中称为 [js] 的东西。我会删除这个问题,但它可能会帮助其他人也将 [js] 输出误认为是 ESLint。仍然很想知道这个 [js] 是个什么样的过程。

我接到了定义项目范围的 .eslintrc.js 文件的任务,以确保团队的代码符合通用标准。

使用预设 eslint:recommended 运行 ESLint 给我以下错误消息

The property "parentNode" does not exist for the type "EventTarget".

这是有问题的代码片段:

window.addEventListener('keydown', event => {
  const currentTag = event.target.parentNode.tagName;
  /* ... */
})

我知道可以有 event.target不是 HTMLElement但是我应该如何编码- 或者配置 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(我理解 ESLint 的用途)。

最佳答案

根据 OP,代码包含//@ts-check 作为第一行

因此很明显,这与单独的 eslint 无关,而是由内部 VSCode linter 引起的

The easiest way to enable type checking in a JavaScript file is by adding // @ts-check to the top of a file.

关于javascript - 如何配置 ESLint 以使用例如event.target 和 element.parentNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50332167/

相关文章:

Unity3d 项目使 VSCode 崩溃

javascript - ActionController::RoutingError(没有路由匹配 [DELETE] "/tasks.1")

javascript - 如何从严格模式中获取调用者?

javascript - Compressor.js - 通过普通表单提交上传图像(无 Ajax)

javascript - Angular ngClass 未评估类名称

javascript - 在 JS 中以编程方式解构数组

javascript - 为什么以 ES6 方式定义 React 组件构造函数行不通?

javascript - 对象值被循环中的最后一个值覆盖

angular - 为什么 vscode 删除我的空间?

bash - 如何在 VSCODE MacOS 上配置 Git Bash