programing

'규칙 '@typescript-eslint/no-use-before-declar'에 대한 정의를 찾을 수 없습니다.eslint(@typescript-eslint/no-use-before-declar)'를 수정하는 방법

sourcejob 2023. 6. 23. 22:02
반응형

'규칙 '@typescript-eslint/no-use-before-declar'에 대한 정의를 찾을 수 없습니다.eslint(@typescript-eslint/no-use-before-declar)'를 수정하는 방법

나는 처음으로 이 문제를 해결하는 방법을 모르겠어요.수입품의 시작 부분은 항상 빨간색 선으로 밑줄이 그어져 있습니다.지정된 규칙에 대한 정의를 찾을 수 없다는 불만이 제기됩니다.저는 규칙을 그대로 유지하고 싶습니다. 왜냐하면 그것은 다른 방법으로 유용할 것이기 때문입니다.

.eslintrc.js 파일에 대해 다음 규칙이 설정되어 있습니다.

`

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']
                }
            }
        ]
    }
};

`

규칙을 없애는 것 말고 다른 방법은 없나요?

감사해요.

페이지에 따르면 이 규칙은 현대 TypeScript에서 사용하지 않고 계산 속도가 느리기 때문에 권장되지 않습니다.따라서 규칙을 제거해야 합니다.

그래도 계속 사용하고 싶다면 다음과 같은 방법을 사용할 수 있습니다.{ "no-use-before-define": ["error", { "variables": false }] }

자세한 내용은 여기를 참조하십시오.

다시 시작합니다.Visual Studio Code.
그러면 이 오류가 제거될 수 있습니다.와 이 개발자는 같은 일을 했습니다.

여기서 구글링을 하신 분들 중에 문제가 발생한 분들은@typescript-eslint/**규칙을 찾을 수 없습니다. 문제는 오래된 패키지를 사용하고 있기 때문일 가능성이 높습니다.

내가 사용하고 있습니다.@typescript-eslint/eslint-plugin일례로직접적인 종속성이 아닐 수 있습니다. 사용npm ls @typescript-eslint/eslint-plugin사용 중인 버전을 확인할 수 있습니다.최신 버전으로 업데이트해 보십시오.

Visual Studio는 일반적으로 종속성 업데이트 후에 이 경고를 제공하기 시작합니다.

+ ++ 사용 및 실행Restart Extension Host거기서 저를 위해 문제를 해결했습니다.

언급URL : https://stackoverflow.com/questions/59083632/how-to-fix-definition-for-rule-typescript-eslint-no-use-before-declare-was-n

반응형