typescript - ESLint kan ikke finne udefinert metode eller egenskap i malen
Jeg skriver Vue-komponenter med TypeScript, og bruker typescript-eslint.
Hvis malen har en udefinert metode eller eiendom, kan jeg ikke oppdage det før den kjøres.
Andre problemer, for eksempel "no-trailing-spaces", kan oppdages både i VSCode og ved å kjøre npm run lint.
Hvilken regel kan finne dette problemet?
package.json
"devDependencies": {
"@types/jest": "^24.0.19",
"@typescript-eslint/eslint-plugin": "^2.18.0",
"@typescript-eslint/parser": "^2.18.0",
"@vue/cli-plugin-eslint": "~4.2.0",
"@vue/cli-plugin-router": "~4.2.0",
"@vue/cli-plugin-typescript": "~4.2.0",
"@vue/cli-plugin-unit-jest": "~4.2.0",
"@vue/cli-plugin-vuex": "~4.2.0",
"@vue/cli-service": "~4.2.0",
"@vue/eslint-config-typescript": "^5.0.1",
"@vue/eslint-config-airbnb": "^5.0.2",
"@vue/test-utils": "1.0.0-beta.31",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^6.1.2",
"sass": "^1.25.0",
"sass-loader": "^8.0.2",
"typescript": "~3.7.5",
"vue-template-compiler": "^2.6.11"
}
<template>
<div>
<div @click="undefinedNiceMethod()">
{{undefined_variable}}
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';
@Component({})
export default class Hoge extends Vue {
blankValue: string = '';
}
</script>
Svar #1
Du kan ikke fange denne no-undef-feilen i Vue-mal med eslint.
Jeg kommer til å lukke dette forslaget, da jeg tror det nesten ikke er mulig å implementere, og selv om det er det - på grunn av antall forskjellige kriterier som bør tilfredsstilles, vil det mest sannsynlig forårsake noen falske positiver og kan gjøre mer skade enn nytte. Hvis du ikke er enig og har en idé om hvordan dette best kan håndteres, vennligst åpne dette problemet igjen og del dine tanker :)
Kilde: Regel forslag: vue/no-undef