コンポーネントが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>
、コンポーネント内で小道具タイプをアサートすることreadonly user!: Array<User>
です。できれば、である必要があります。
vue-class-componentおよびvue-property-decoratorクラスコンポーネントの制限により、TypeScriptはコンパイル時の小道具の型の安全性を保証できません。VueコンポジションAPIは、厳密に型指定されたTypeScriptコンポーネントに使用できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加