web-dev-qa-db-fra.com

Pourquoi ESLINT lance "No-inutilisé-vars" pour une interface dossière?

Donc, j'ai ce morceau de code dans le fichier .TS:

import {MicroEventInterface} from '../Interfaces';

export default class MicroEvent implements MicroEventInterface {

// code

Et Eslint jette cette erreur:

error

J'ai cette configuration pour TypeScript à Eslint:

TypeScript: {
    extends: [
        'plugin:@private/private/react' // private rep with React config
    ],
    parser: '@TypeScript-eslint/parser',
    plugins: [
        '@TypeScript-eslint',
        'import'
    ],
    settings: {
        'import/resolver': {
            'node': {
                'extensions': [
                    '.js',
                    '.jsx',
                    '.ts',
                    '.tsx'
                ],
                'moduleDirectory': [
                    'node_modules/',
                    'src/'
                ]
            }
        },
        react: {
            createClass: 'createClass',
            pragma: 'React',
            version: '0.14.9'
        }
    }
}

Donc, tout semble bien, mais je ne peux pas conquérir cette erreur.

Aucune suggestion?

Merci!

updément:

On dirait si je console.log( --- , MicroEventInterface); une erreur disparaît. Je pense, Eslint ne traite pas implements comme utilisation réelle.

23
Nikita Shchypyplov

Pour résoudre ce problème dans un projet pure documentscript, j'ai ajouté la règle suivante à mon fichier de configuration Eslint (.eslintrc.json). Pour que cette solution particulière fonctionne, vous devez suivre la convention que les noms d'interface commencent par une majuscule "I".

Incidemment, d'autres artefacts (nommément classes) Quelle est leur première lettre étant une majuscule "i" sera ignorée lorsque vous envisagez de s'ils sont utilisés dans des fichiers/des modules.

Escroc

...
    "rules": {
        ... other rules omitted ...,
        "no-unused-vars": [
            "warn",
            { 
                "vars": "all",
                "varsIgnorePattern": "[I]\\w+"
            }
        ]
    }
...

Pour plus d'informations sur cette règle, voir la Documentation .

1
Jason