typescript - vue-property-decorator @Prop Hur man använder interface för att definiera en array
'use strict'
import Vue from 'vue'
import { Prop, Watch } from 'vue-property-decorator'
interface ITabs {
name: string
value: string
}
export default class extends Vue {
@Prop({
type: Array,
default() {
return []
}
})
public tabs!: ITabs[] // TS2416
}
TS2416: Egenskapen 'tabs' i typen 'default' kan inte tilldelas samma egenskap i basklassen 'object & Record & Vue'. Typen 'ITabs[]' kan inte tilldelas typen '{ name: ""; value: ""; }[] | undefined'. Typen 'ITabs[]' kan inte tilldelas typen '{ name: ""; value: ""; }[]'. Typen 'ITabs' kan inte tilldelas typen '{ name: ""; value: ""; }'. Typerna för egenskapen 'name' är inkompatibla. Typen 'string' kan inte tilldelas typen '""'.
Jag vill använda ett gränssnitt i Prop Array, vad gör jag?
Svar #1
Om någon har problem med det som jag hade, är det här som fungerade för mig:
@Prop({ default: () => {
return [ ]
}
}) private tabs!: ITabs[];
