typescript - Vue js 3 - Egenskapen 'projects' finns inte på typen 'CreateComponentPublicInstance<{}, {}, {}, {}, {},
Problem :
Property 'projects' does not exist on type 'CreateComponentPublicInstance<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, {}, {}, false, OptionTypesType<{}, ... 4 more ..., {}>, ... 5 more ..., {}>'
Av någon anledning skriker det på computed, Du kan se mitt this.project eller this.message.
Jag har ingen aning om hur jag ska fixa det, snälla hjälp. package.json
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^4.18.0",
"@typescript-eslint/parser": "^4.18.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-plugin-typescript": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/compiler-sfc": "^3.0.0",
"@vue/eslint-config-prettier": "^6.0.0",
"@vue/eslint-config-typescript": "^7.0.0",
"eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^7.0.0",
"cross-env": "^7.0.3",
"css-loader": "^5.2.6",
"fork-ts-checker-webpack-plugin": "^6.2.10",
"less": "^3.0.4",
"less-loader": "^5.0.0",
"sass-loader": "10.1.1",
"terser-webpack-plugin": "^4.2.3",
"prettier": "^2.2.1",
"typescript": "~4.1.5"
}
Problemet uppstår när jag lägger till i shims-vue.d.ts:
import { ComponentCustomProperties } from 'vue'
import { Store } from 'vuex'
declare module '@vue/runtime-core' {
// declare your own store states
interface State {
count: number
}
// provide typings for `this.$store`
interface ComponentCustomProperties {
$store: Store<State>
}
}
Då visar det mitt fel. Om jag tar bort lagringsdeklarationen skriker det på lagret men inte på den beräknade.
Svar #1
Jag hade ett liknande problem med Vetur-fel på beräknade egenskaper, och en sökning tog upp detta problem.
Enligt denna länk är detta ett känt problem gällande Vues typningar och Typescript.
https://vuejs.github.io/vetur/guide/FAQ.html#property-xxx-finns-inte-pa-typ-combinedvueinstance
Att ändra beräknade egenskaper till att ha en tydlig returtyp verkar lösa problemet.
greet (): string {
return this.msg + ' world'
}
Några fler detaljer och exempel:
https://v2.vuejs.org/v2/guide/typescript.html#Annotating-Return-Types
Svar #2
Jag förlorade mycket tid på detta fel, i mitt fall också relaterat till ''data''-attributen i Vue. Först hade jag några problem med node modules, efter att ha avinstallerat globalt, lokalt och installerat om paket, märkte jag att tomma projekt (skapade av vue-cli) nu fungerade, bara mitt huvudprojekt rapporterade fortfarande detta fel.
Problemet med mitt projekt nu var att endast de komponenter som registrerats globalt inte korrekt igenkändes av varken Vetur eller Volar, så jag fick hela tiden detta trådfel bara på dem.
Jag råkade upptäcka en lösning av misstag, jag kommer att behålla den tills jag får reda på vad som verkligen pågår. Typescript slutar bara att returnera detta fel när jag deklarerar "data" så här:
data: () => {
Andra variationer, som den här, fungerar inte
//data() { also not works
data: function () {
return {
comida: 1,
}
},
methods: {
setupVisitsCategoryCard() {
this.comida = 2 //Property 'comida' does not exist on type 'CreateComponentPublicInstance<...'
}
}
```
