エラー内容
Property ‘XXX’ has no initializer and is not definitely assigned in the constructor.
piyoプロパティが初期化されていないよ。コンストラクターで明確に割り当てられていないよ。
とのこと。
解消法
hoge.vue
@Component
export default class hoge extends Vue {
@Prop()
private piyo: hogehoge[];
こうなっているのを
hoge.vue
@Component
export default class hoge extends Vue {
@Prop()
private piyo!: hogehoge[];
こうする。
piyoプロパティに型アサーション「!」を付けることで解決する。
原因
親コンポーネントで値が割り当てられた事を、明示的に宣言していないから。
TypeScriptは静的に割当済みかどうか判断することができないため、エラーを返してしまう。
__感嘆符(!)__を付けることで、TypeScriptに値が確実に割り当てられいる事を伝えられる。