【问题标题】:Vue and TypeScript required propVue 和 TypeScript 所需的道具
【发布时间】:2019-11-10 01:38:46
【问题描述】:

我使用vue-property-decorator 向我的组件类添加了一个必需的道具,但是当我尝试使用没有该道具的组件时,我没有看到任何表明缺少所需道具的控制台错误。为什么?

export default class Test extends Vue {
  @Prop() private message!: string;
}

以下代码不会产生预期的错误:

<test message="Hello" />

以下代码应该会导致错误,但不会:

<test />

【问题讨论】:

  • 我猜你不能把它设为私有
  • 请问,这是什么意思? @LoganMurphy
  • @ShubhamSharma 我将私有更改为公开,但没有任何改变。
  • @ShubhamSharma 我希望出现“缺少所需道具”之类的错误。但没有任何错误。
  • @mira 将 Hello 视为变量而不是值,因此将其转换为字符串“Hello”。或者你应该通过它而不使用 v-binding ':'

标签: typescript vue.js vuejs2 vue-component


【解决方案1】:

@Prop 装饰器接受一个PropOptions 对象,该对象包含一个默认值为falserequired 属性。要使message 成为必需,请在您的@Prop 声明中指定required: true

@Prop({ required: true }) private message!: string;

【讨论】:

    猜你喜欢
    • 2018-12-10
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 2022-06-16
    • 2022-01-09
    • 1970-01-01
    • 2018-03-25
    • 2019-11-11
    相关资源
    最近更新 更多