網站搜尋

vue.js - Vue 和 TypeScript 所需的屬性


我使用 vue-property-decorator 在我的組件類中添加了一個必需的 prop,但當我嘗試在沒有該 prop 的情況下使用組件時,我沒有看到任何控制台錯誤提示缺少必需的 prop。為什麼?

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

以下程式碼如預期般不會產生錯誤:

<test message="Hello" />

以下程式碼應該會導致錯誤,但卻沒有:

<test />

答案#1

@Prop 裝飾器接受一個 PropOptions 對象,其中包含一個預設值為 false 的 required 屬性。要使 message 成為必填項,請在您的 @Prop 聲明中指定 required: true:

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