vue-class-component
やvue-property-decorator
を使っていて、props等をクラス名で型指定したい場合。
下記の様なクラスがあったとして、
person.ts
export class Person {
firstName: string;
lastName: string;
}
下記の様に、componentでpropsのtypeをクラス名で縛ると、実行時エラー(ビルドは通るがブラウザ上でエラー)になる。
pattern1(vue-class-component)
@Component({
props: {
someone: Person
}
})
pattern2(vue-property-decorator)
export default class SomeComponent extends Vue {
@Prop() someone: Person;
}
下記の様な指定をすれば問題なく動く。
SomeComponent.vue
<template>
<div/>
</template>
<script lang="ts">
import { Component, Vue, Prop } from 'vue-property-decorator';
@Component
export default class SomeComponent extends Vue {
@Prop({ type: Object }) someone: Person;
}
</script>
これって補完が効く以外に意味あるのかわからないけど、とりあえず。