【发布时间】:2021-02-22 16:52:11
【问题描述】:
我在所有 TypeScript 项目中都使用 ESLint,设置如下:
"extends": ["airbnb", "prettier", 'plugin:vue/recommended'],
"plugins": ["prettier"],
"parserOptions": {
"parser": "@typescript-eslint/parser",
"ecmaVersion": 2018,
"sourceType": "module"
},
-
一堆自定义规则。我还为 TypeScript 支持安装了以下依赖项:
"@typescript-eslint/eslint-plugin": "^1.7.0", "@typescript-eslint/parser": "^1.7.0",
然而,ESLint 最有用的规则之一,https://eslint.org/docs/rules/no-unused-vars,似乎对 TypeScript 项目的配置很差。例如,当我导出枚举时,规则会警告我该枚举在声明它的文件中未使用:
export enum Foo {
Bar,
}
同样,当我导入要用作类型的接口或类时,'no-unused-vars' 会在实际导入的行再次报错:
在 Foo.ts 中
export interface Foo {
bar: string;
}
在 bar.ts 中
import { Foo } from './Foo'
const bar: Foo = { bar: 'Hello' };
有没有办法配置 no-unused-vars 规则来考虑这两种情况?我不喜欢禁用该规则,因为它是我的整个规则集中在这些情况之外最有用的规则之一。
我已经将规则降级为只给出警告而不是错误,但是让我的所有文档都充满警告仍然有点违背使用 esLint 的目的。
按照here 的建议使用 //eslint-disable-line 填充我的所有文档似乎也是一个糟糕的解决方案。
【问题讨论】:
-
es lint 好像没有正确配置。尝试卸载并再次在你的包中添加 eslint。
-
如果是这种情况,我会感到惊讶,因为即使在重新安装 esLint 之后(以及在开始全新的项目时)我也会遇到同样的问题。我以为每个人都有相同的经历,但也许这是由我扩展 esLint 设置的规则集之一引起的?
标签: typescript eslint