Javascript 如何配置ESLint以使用例如event.target和element.parentNode?
编辑:我没有意识到错误消息甚至不是来自ESLint,而是来自Visual Studio代码中名为[js]的东西。我想删除这个问题,但这可能会帮助其他人将[js]输出误认为是ESLint。仍然想知道这件事是什么样的过程 我的任务是定义一个项目范围的.eslintrc.js文件,以确保团队的代码符合通用标准 使用预设运行ESLintJavascript 如何配置ESLint以使用例如event.target和element.parentNode?,javascript,ecmascript-6,visual-studio-code,eslint,eslintrc,Javascript,Ecmascript 6,Visual Studio Code,Eslint,Eslintrc,编辑:我没有意识到错误消息甚至不是来自ESLint,而是来自Visual Studio代码中名为[js]的东西。我想删除这个问题,但这可能会帮助其他人将[js]输出误认为是ESLint。仍然想知道这件事是什么样的过程 我的任务是定义一个项目范围的.eslintrc.js文件,以确保团队的代码符合通用标准 使用预设运行ESLintESLint:recommended会显示以下错误消息 The property "parentNode" does not exist for the type "Ev
ESLint:recommended
会显示以下错误消息
The property "parentNode" does not exist for the type "EventTarget".
这是一段有问题的代码:
window.addEventListener('keydown', event => {
const currentTag = event.target.parentNode.tagName;
/* ... */
})
我知道可能存在事件。目标不是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(据我所知,ESLint是用于ES6的)。根据OP,代码包含//@ts check作为第一行
因此很明显,这与单独的eslint无关,而是由内部
在JavaScript文件中启用类型检查的最简单方法是在文件顶部添加//@ts check
挑剔:流类型可以在注释中注释,所以它是纯JavaScript。但是,是的,这似乎是一个奇怪的linter错误。似乎ESLint试图提供类型安全性,这对于linter来说似乎有点过于雄心勃勃。这看起来像是TypeScript而不是ESLint,也许这是您的IDE试图隐式键入提示代码?@connexo我也有点怀疑消息是否真的来自eslint请关闭此窗口,因为我没有意识到错误消息甚至不是来自eslint,而是来自Visual Studio代码中名为[js]
的东西。我会删除它,但这可能会帮助其他人将[js]输出误认为是ESLint。