typescript - Vue 中已使用的接口顯示 Eslint no-unused-vars 錯誤
我正在使用 Vue 與 Vue CLI 和 TypeScript。
我從 vuex 文件匯入了 interface,並將它用於 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 錯誤?
答案#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 - 為 TypeScript 配置 "no-unused-vars"
[3] https://khalilstemmler.com/blogs/typescript/eslint-for-typescript/
