【问题标题】:( VUE Computed ) Property 'XXX' does not exist on type 'CreateComponentPublicInstance'(VUE 计算)“CreateComponentPublicInstance”类型上不存在属性“XXX”
【发布时间】:2021-06-06 12:03:52
【问题描述】:

我使用 Vue 3 打字稿,我尝试创建一个计算属性 classes 并包含这样的返回对象

NavbarTypes.ts

interface INavbar {
  onScroll?: boolean,
  navbarActive?: boolean
}

export default INavbar

data (): NavbarTypes {
  return {
    onScroll: false,
    navbarActive: false,
  }
}

computed: {
  classes () {
    return {
      "navbar--on-scroll": this.onScroll,
      "navbar--active": this.navbarActive
    }
  }
}

但我收到了这些错误

(property) onScroll?: boolean | undefined

Property 'onScroll' does not exist on type 'CreateComponentPublicInstance<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, {}, {}, false, OptionTypesType<{}, ... 4 more ..., {}>, ... 5 more ..., {}>'.

我认为这是因为计算的返回类型。但我不是很确定,也不知道如何制作返回类型对象

希望大家能帮帮我,先谢谢了

【问题讨论】:

  • 你使用的是 vue 2 还是 vue 3?
  • 嗨 @BoussadjraBrahim 对不起,我正在使用 vue 3
  • 请分享整个组件代码
  • 您是否尝试删除使onScroll 属性成为可选的?

标签: typescript vue.js


【解决方案1】:

计算属性类应该声明一个类型,像这样

computed: {
  classes ():any {
    return {
      "navbar--on-scroll": this.onScroll,
      "navbar--active": this.navbarActive
    }
  }
}

【讨论】:

    猜你喜欢
    • 2021-09-08
    • 2021-08-26
    • 2021-12-19
    • 2022-01-03
    • 2018-12-24
    • 2019-09-23
    • 2020-05-08
    • 2018-12-04
    • 2020-12-18
    相关资源
    最近更新 更多