我在我的所有 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”将在实际导入的行再次抱怨:
脚下
export interface Foo {
bar: string;
}
在 bar.ts
import { Foo } from './Foo'
const bar: Foo = { bar: 'Hello' };
有没有办法配置 no-unused-vars 规则来考虑这两种情况?我不喜欢禁用该规则,因为它是我的整个规则集中在这些情况之外最有用的规则之一。
我已经将规则降级为只给出警告而不是错误,但是让我的所有文档都充满警告仍然有点违背使用 esLint 的目的。
按照 这里 的建议用 //eslint-disable-line 填充我的所有文档似乎也是一个糟糕的解决方案。
原文由 Rins 发布,翻译遵循 CC BY-SA 4.0 许可协议
它有点隐藏在 文档 中,但是如果你在 ‘extends’ 属性中添加一些东西,你可以使用 ESLint 推荐的规则,如 no-unused-vars,并让它在 Typescript 中实际工作。像这样:
@typescript-eslint/recommended 似乎是允许 eslint:recommended 有效处理 Typescript 构造的东西。不确定它会如何影响您的其他扩展。