我在我的所有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的目的。
按照建议使用//eslint-disable-line填充我的所有文档
这里
这似乎也是一个糟糕的解决方案。
发布于 2019-10-23 06:32:54
它有点被埋没了
文档
,但如果您添加一些东西到‘扩展’属性,您可以使用ESLint推荐的两个规则,如no-unused vars,并让它在Typescript中实际工作。如下所示:
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
],
@ Typescript -eslint/推荐似乎是允许eslint的东西:推荐有效地处理Typescript构造。不过,我不确定这会对你的其他扩展有什么影响。
发布于 2021-02-18 04:39:58
我的问题是使用装饰器,并希望有一个具有适当名称的变量,例如:
而不是
TypeScript通常的解决方案是在前缀加上下划线:
也可以让ESLint接受同样的东西:
module.exports = {
...
rules: {
'@typescript-eslint/no-unused-vars': ['warn', { 'argsIgnorePattern': '^_' }]
....
},
};
发布于 2019-09-27 00:18:06
你有
嵌套在
..。它应该是同级的,如下所示:
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
至于
,恐怕这是一个正在进行的bug
:
https://github.com/typescript-eslint/typescript-eslint/issues/363
https://stackoverflow.com/questions/57802057
复制相似问题