在打字稿文件上启用 Eslint

Posted

技术标签:

【中文标题】在打字稿文件上启用 Eslint【英文标题】:Enabling Eslint on typescript files 【发布时间】:2016-08-22 23:27:07 【问题描述】:

在 webstorm eslint 设置中,有一个“额外的 eslint 选项”字段。 在此,我补充说:

--ext .ts

来自 eslint documentation,它应该允许 eslint 处理自定义文件扩展名,在本例中为 .ts 文件。 这无济于事。我的语法错了吗?无论如何要在 .ts 文件上启用 Eslint,可能来自 .eslintrc 文件?

【问题讨论】:

【参考方案1】:

--ext 允许使用自定义 javascript 扩展,你不能通过传递不同的文件扩展名来强制 ESLint 为 JavaScript 以外的语言工作。

您可以尝试使用typescript-eslint-parser 为 Typescript 启用 ESLint - 它允许从可以传递给 ESLint 的 typescript 代码构建语法树以进行 linting。

但我建议使用 Typescript linters 来检查 TypeScript 代码。例如,您可以尝试TSLint。

更新:从2017.1.3开始,WebStorm支持ESLint + typescript-eslint-parser;你只需要安装typescript 插件和typescript-eslint-parser 并相应地修改你的ESLint 配置:

"parser": "typescript-eslint-parser",
"plugins": ["typescript"]

【讨论】:

这里的答案是什么? TSLint 还是 typescript-eslint-parser?尝试了 TSLint,如果不做一些研究,它似乎无法立即工作。 答案是 - 你可以同时尝试,但我建议使用 TSLint。如果它不适合您,则不是拒绝答案的理由。这不是广告,只是解释为什么 ESLint --ext 对 TypeScript 没有任何作用 typescript-eslint-parser 在任何情况下都对我不起作用。 当我使用"parser": "typescript-eslint-parser",时,我的其他项目用javascript无法通过vscode eslint插件验证和格式化,你知道如何解决这个问题吗? 任何使用 typescript-eslint-parser 的人都应该使用 @typescript-eslint/parser 而不是 eslint.org/blog/2019/01/future-typescript-eslint【参考方案2】:

2020 年答案:

我的问题是 .ts 文件的 WebStorm 的“问题”选项卡中没有显示 ESLint 错误/警告(这也适用于 Rider),即使 VS Code 工作正常(显示警告/错误)也是如此文件。

解决方案:

    按 CTRL+SHIFT+A

    搜索“注册表...”

    开始键入eslint.additional.file.extensions 以查找该注册表项

    eslint.additional.file.extensions 的值设置为js,ts(如上图所示)

您可能应该重新启动编辑器才能确定。这对我有用(错误/警告开始出现在问题部分,就像在 VS Code 中一样),我正在使用@typescript-eslint/[somethinghere] 规则等。

【讨论】:

你知道磁盘上的哪个配置文件(在 linux 上)受到这个变化的影响吗? 我不相信这是保存在文件中的。我假设您之所以问,是因为您想在同事之间共享此设置-我遇到了同样的问题,但找不到解决方案。我只是把这个答案的链接放在我的文档中,告诉人们手动启用 eslint。【参考方案3】:

尝试将此行添加到您的 .eslintrc.json 中

"plugins": ["typescript"]

就我而言,我使用此配置将我的.vue.ts 文件格式化为 eslint:


  "parser": "vue-eslint-parser",
  "parserOptions": 
     "parser": "typescript-eslint-parser"
   ,
  "extends": [
     "eslint:recommended",
     "plugin:vue/recommended",
     "typescript"
  ],
  "plugins": ["typescript"]

【讨论】:

以上是关于在打字稿文件上启用 Eslint的主要内容,如果未能解决你的问题,请参考以下文章

对于打字稿,当前未启用“decorators-legacy”的错误,事件我设置了experimentalDecorators和emitDecoratorMetadata为真

在 VSCode 中,如何在 python 文件上应用单引号,而不仅仅是打字稿,更漂亮?

从事件获取文件时,打字稿对象可能为空

CRA 打字稿皮棉

如何在打字稿中声明全局变量

打字稿 noEmit 用例