typescript - Vue js 3 - 属性 'projects' 在类型“CreateComponentPublicInstance<{}、{}、{}、{}、{}”上不存在,

标签 typescript vue.js eslint

enter image description here
问题:

Property 'projects' does not exist on type 'CreateComponentPublicInstance<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, {}, {}, false, OptionTypesType<{}, ... 4 more ..., {}>, ... 5 more ..., {}>'
出于某种原因,它在计算时尖叫,你可以看到我的 this.project 或 this.message。
我不知道如何解决它,请帮助。
包.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"
  }
问题来自我添加到 时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>
  }
}
然后它显示了我的错误。
如果我删除商店声明,它会在商店上尖叫,但不会在计算上尖叫。

最佳答案

我在计算属性上遇到了类似的 Vetur 错误问题,搜索提出了这个问题。
根据这个链接,这是一个关于 Vue 的 Typings 和 Typescript 的已知问题。
https://vuejs.github.io/vetur/guide/FAQ.html#property-xxx-does-not-exist-on-type-combinedvueinstance
将计算属性更改为具有显式返回类型似乎可以解决该问题。

greet (): string {
  return this.msg + ' world'
}
更多细节和示例:
https://vuejs.org/v2/guide/typescript.html#Annotating-Return-Types

关于typescript - Vue js 3 - 属性 'projects' 在类型“CreateComponentPublicInstance<{}、{}、{}、{}、{}”上不存在,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68127272/

相关文章:

typescript - typescript 中的 this 关键字。这是一个错误吗?

javascript - 类型 'Observable<HttpEvent<T>>' 不可分配给类型 'Observable<T>'

reactjs - typescript 错误 : Type '{ onClick: () => void; }' is not assignable to type 'IntrinsicAttributes'

javascript - 使用 nuxt-link 在链接中传递 id 号

javascript - 无法在vue js组件中导入js-search

java - Angular 7 如何将 Access-Control-Allow-Origin header 添加到预检发布请求中?

vue.js - 在 HTML 页面中插入 VueJS 组件模板不起作用

javascript - Eslint: no-duplicates 解决错误:无法加载解析器 "node"

eslint - .eslintrc : Configuration for rule "import/extensions" is invalid:

javascript - ESLint 建议将 for.. 包装起来并使用 Object.{keys,values,entries}