sterk typisering - bruke et grensesnitt for å typisere et anonymt objekt i TypeScript
Jeg har et grensesnitt IBase og en variabel som inneholder noen få andre objekter (i eksemplet la jeg bare til base for en bedre demonstrasjon)
interface IBase {
height?:number;
width?:number;
}
var element = {
base: {
}
}
Hvordan kan jeg si at objektet som variabelen element.base har, er av typen IBase? Jeg vet at jeg kan lage en type for elementvariabelen som inneholder typene til base osv., men er det også en mulighet å type den situasjonen uten å gjøre det.
Svar #1
Van den Brinks svar er bra. Bare som en demo et annet alternativ :
var element = {
base: <IBase> {
}
}
Dette vil også gi den ønskede intellisense:
Svar #2
Hvis du endrer deklarasjonen av var element til følgende, vet den hva base er:
var element: { base: IBase; } = {
base: {
}
}
Merk: du kan også lage et nytt grensesnitt for det slik som dette, noe som gjør det litt mer gjenbrukbart: interface IElement { base: IBase; } og deretter bruke det slik som her: var element: IElement={ base: {} }
