javascript - ESlint Angular - no-unused-vars 命中类型定义
问题描述
我正在升级/重构一个 Angular 项目(到Angular 8、Electron 6、Ionic 4),我们决定从 TSLint 切换到 ESLint。
我设置了一些规则并且它们正在运行,但我无法摆脱no-unused-vars
类型定义的警告。当我运行 linting 时,我会收到此警告OperatorFunction
,Observable
这显然不是问题。
import { OperatorFunction, Observable, timer } from 'rxjs';
import { tap } from 'rxjs/operators';
export function executeDelayed<T>(fn: () => void, delayTime: number): OperatorFunction<T, T> {
return function executeDelayedOperation(source: Observable<T>): Observable<T> {
//...
}
}
.eslintrc.js文件使用此配置
module.exports = {
"env": {
"browser": true,
"es6": true,
"node": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:prettier/recommended"
],
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"plugins": [
"@typescript-eslint"
],
"rules": {
"no-unused-vars": [
"warn",
{
"vars": "local",
"ignoreSiblings": true,
"args": "after-used",
"argsIgnorePattern": "res|next|^err"
}
],
"no-use-before-define": [
"error",
{
"functions": true,
"classes": true
}
]
}
};
我在这里遇到了多个类似的问题,但无法找到解决方案。任何想法?切换回 TSLint 不是一种选择。
解决方案
我遇到了类似的问题,但能够通过遵循@typescript-eslint/eslint-plugin README中的建议来解决它。本质上,我只是将我的extends
部分更改为如下所示:
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
]
更改后,所有no-unused-vars
错误和警告都消失了。
据我所知,该"plugin:@typescript-eslint/recommended"
行覆盖了eslint:recommended
不适用于 TypeScript 的规则,尤其是那个no-unused-vars
。
希望这会有所帮助!
推荐阅读
- powershell - 获取代理池的构建/发布列表?
- vue.js - Uncaught TypeError: Cannot read property '$router' of undefined
- c# - Correct way to get results from a blocking collection
- dart - Accessing multiple calendars in flutter
- php - PHP / Laravel - 一个具有多个多态关系的模型
- python - 如何在 Python 中导入 r 包
- facebook-graph-api - 当我的应用程序已经具有页面公共内容访问权限时如何生成正确的访问令牌
- keras - How to undestand timestamp in Keras LSTM
- java - 尝试连接配对设备时如何修复“java.io.IOException:读取失败,套接字可能关闭或超时”?
- unicode - 使用十六进制名称组合字符