After eslint adds typescript check, there will be an error when the attribute variable in the class definition is Array.
If someone are still having the issue, I add "extends": ["eslint:recommended", "plugin:react/recommended"],
on the .eslintrc.json file and the problem get solved.
The solution is to disable the native no-unused-vars
so that only the TS one is enabled. The former is likely to be enabled if you extend a config in ESLint. Add the rules below to your ESLint config.
"rules": {
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "error"
}
The pictures added to my questions can not be browsed. In order to facilitate other people to help answer the questions, add a screenshot of my code in the form of answers.
import {Route} from '@/app/router/Route';
class YabRouter {
public widthOutAuthRoutes: Route[] = [];
public systemConfigRoutes: Route[] = [];
public staticRoutes: Route[] = [];
public dynamicRoutes: Route[] = [];
Disable no-unused-vars
and enable it with "@typescript-eslint/no-unused-vars": "error"
"rules": {
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "error"
}
Thanks to James Middleton for the correct answer.
Looking at the eslint repository on github, there have been lots of issues opened about the no-unused-vars
rule. Here is some examples:
https://github.com/typescript-eslint/typescript-eslint/issues/45
https://github.com/typescript-eslint/typescript-eslint/issues/111
https://github.com/typescript-eslint/typescript-eslint/issues/171
It's an ongoing problem. Hopefully we can expect this to be resolved soon.