Ошибка eslint no-unused-vars отображается для используемого интерфейса во Vue

Я использую Vue с Vue CLI и Typescript.
Я импортировал интерфейс из файла vuex и использовал его для аннотации типа mapState.
Но eslint показывает мне ошибку.

'State' is defined but never used. eslint(no-unused-vars)


Код

import { Component, Vue } from 'vue-property-decorator';
import { mapState } from 'vuex';
import { State } from '@/store/index';

@Component({
  computed: mapState<State>({
    cards: (state: State) => state.user.cards,
  })
})
export default class Home extends Vue {}

.eslintrc.js

module.exports = {
  root: true,
  env: {
    node: true
  },
  'extends': [
    'plugin:vue/essential',
    'eslint:recommended',
    '@vue/typescript'
  ],
  rules: {
    'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    'quotes': ['error', 'single'],
    'semi': ['warn', 'always']
  },
  parserOptions: {
    parser: '@typescript-eslint/parser'
  }
};


Что делать, чтобы не отображалась ошибка eslint?


person D.QSR    schedule 12.04.2020    source источник
comment
Вы нашли ответ с тех пор, как разместили эту ветку? У меня тоже самое странное ...   -  person Raphaël Roux    schedule 11.01.2021


Ответы (1)


Решение:

По умолчанию в EsLint no-unused-vars есть ошибка, которая воспроизводится так, как вы объясняете. Согласно моему источнику [1] это должно быть исправлено с помощью @typescript-eslint/no-unused-vars вот так:

overrides: [
   // Fix no-used-vars when importing ts types in .vue files
   {
     files: ["*.vue"],
     rules: {
        'no-unused-vars': 'off',
        '@typescript-eslint/no-unused-vars': 'error'
     }
  }
]

Источник [2] - это еще один вопрос по той же теме. Здесь мое решение [1] является одним из вариантов. В [2] и [3] сказано, что вам нужно установить @typescript-eslint/eslint-plugin и @typescript-eslint/parser следующим образом:

npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin

Источник:

[1] https://github.com/vuejs/eslint-config-typescript/issues/14

[2] ESLint - Настройка no-unused-vars для TypeScript

[3] https://khalilstemmler.com/blogs/typescript/eslint-for-typescript/

person mico    schedule 21.05.2021