I am new to eslint and I cannot figure out how to solve this issue. The beginning of my imports is always underlined with a red line. It complains about the definition not being found for the specified rule. I would like to keep the rule in place as it is seems it will be otherwise useful. .
For my .eslintrc.js file I have the following rules set up:
`
module.exports = {
env: {
browser: true,
node: true
},
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/eslint-recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking',
'prettier'
],
parser: '@typescript-eslint/parser',
parserOptions: {
project: 'tsconfig.json',
sourceType: 'module'
},
plugins: ['@typescript-eslint', '@typescript-eslint/tslint'],
rules: {
'@typescript-eslint/class-name-casing': 'error',
'@typescript-eslint/consistent-type-definitions': 'error',
'@typescript-eslint/explicit-member-accessibility': [
'off',
{
accessibility: 'explicit'
}
],
'@typescript-eslint/indent': ['error', 'tab'],
'@typescript-eslint/member-delimiter-style': [
'error',
{
multiline: {
delimiter: 'semi',
requireLast: true
},
singleline: {
delimiter: 'semi',
requireLast: false
}
}
],
'@typescript-eslint/member-ordering': 'error',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/no-empty-interface': 'error',
'@typescript-eslint/no-inferrable-types': 'error',
'@typescript-eslint/no-misused-new': 'error',
'@typescript-eslint/no-non-null-assertion': 'error',
'@typescript-eslint/no-use-before-declare': ['error', { functions: true, classes: true, variables: true }],
'@typescript-eslint/prefer-function-type': 'error',
'@typescript-eslint/quotes': ['error', 'single'],
'@typescript-eslint/semi': ['error', 'always'],
'@typescript-eslint/type-annotation-spacing': 'error',
'@typescript-eslint/unified-signatures': 'error',
'arrow-body-style': 'error',
camelcase: 'off',
'capitalized-comments': 'error',
'constructor-super': 'error',
curly: 'error',
'dot-notation': 'off',
'eol-last': 'error',
eqeqeq: ['error', 'smart'],
'guard-for-in': 'error',
'id-blacklist': 'off',
'id-match': 'off',
'import/no-deprecated': 'warn',
'max-classes-per-file': ['error', 1],
'max-len': [
'error',
{
code: 140
}
],
'no-bitwise': 'error',
'no-caller': 'error',
'no-console': [
'error',
{
allow: [
'log',
'warn',
'dir',
'timeLog',
'assert',
'clear',
'count',
'countReset',
'group',
'groupEnd',
'table',
'dirxml',
'error',
'groupCollapsed',
'Console',
'profile',
'profileEnd',
'timeStamp',
'context'
]
}
],
'no-debugger': 'error',
'no-empty': 'off',
'no-eval': 'error',
'no-fallthrough': 'error',
'no-new-wrappers': 'error',
'no-shadow': [
'error',
{
hoist: 'all'
}
],
'no-throw-literal': 'error',
'no-trailing-spaces': 'error',
'no-undef-init': 'error',
'no-underscore-dangle': 'off',
'no-unused-expressions': 'error',
'no-unused-labels': 'error',
'no-var': 'error',
'prefer-const': 'error',
radix: 'error',
'spaced-comment': 'error',
'@typescript-eslint/tslint/config': [
'error',
{
rules: {
'component-class-suffix': [true, 'Component', 'View', 'Routing'],
'contextual-lifecycle': true,
'directive-class-suffix': true,
'import-blacklist': [true, 'rxjs/Rx'],
'import-spacing': true,
'no-host-metadata-property': true,
'no-input-rename': true,
'no-inputs-metadata-property': true,
'no-output-on-prefix': true,
'no-output-rename': true,
'no-outputs-metadata-property': true,
'no-redundant-jsdoc': true,
'one-line': [true, 'check-open-brace', 'check-catch', 'check-else', 'check-whitespace'],
'template-banana-in-box': true,
'template-no-negated-async': true,
'use-component-view-encapsulation': true,
'use-lifecycle-interface': true,
'use-pipe-decorator': true,
'use-pipe-transform-interface': true,
'no-unused-vars': ['error', { vars: 'all', args: 'after-used', ignoreRestSiblings: false }],
whitespace: [true, 'check-branch', 'check-decl', 'check-operator', 'check-separator', 'check-type']
}
}
]
}
};
`
Any idea how to fix this other than removing the rule?
Thank you
Well according to this page, this rule is discouraged as modern TypeScript does not use it and is slow to compute. So you should remove the rule.
If however you still want to keep using it, you can try something like {
"no-use-before-define": ["error", { "variables": false }]
}
You can read more about this here
Restart your Visual Studio Code
.
It may eliminate this error.
Me and this dev did the same thing.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With