![](/img/trans.png)
[英]Vue.js + Typescript: How to set @Prop type to string array?
[英]How to set vue prop type to Array of User Class using typescript?
我想知道是否有辦法讓我的組件只接受 User 類的數組。
@Prop({ required: true, type: () => Array }) readonly user: Array<User>;
上面的代碼接受所有數組。
可以使用自定義驗證器檢查道具類型:
@Prop({
required: true,
validator: prop => Array.isArray(prop) && prop.every(item => item instanceof User)
}) readonly user: Array<User>;
TypeScript 是結構類型化的, Array<User>
不需要數組作為User
類的實例。
Array<User>
的目的是在組件內部斷言 prop 類型,最好應該是readonly user!: Array<User>
。
由於 vue-class-component 和 vue-property-decorator 類組件的限制,TypeScript 在編譯時無法保證 props 的類型安全。 Vue 組合 API 可用於嚴格類型的 TypeScript 組件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.