TypeScript-grensesnitt for objekt-egenskap [henviser bare til en type, men brukes som en verdi her.]


state = {
    x: Array<any>(),
    y: number
}

y gir meg følgende feil:

refererer bare til en type, men brukes som en verdi her.

noe som er forståelig fordi det er objektets egenskap.

Hvordan kan jeg spesifisere en type for dette som x?

Svar #1

Problemet er at du prøver å tilordne til state en type med den gitte strukturen. Hvis du vil erklære en variabel eller et felt, må du bruke :

let state : {
    x: Array<any>,
    y: number
}

//Or for a field:
class Foo {
    state: {
        x: Array<any>,
        y: number
    }
}

Hvis du vil opprette et slikt objekt, må du tilordne verdier, ikke typer:

let state = { x: [], y: 0}  // empty array for x