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[];

Relaterade artiklar