Vyhledávání na webu

silné typování - použití rozhraní k typování anonymního objektu v TypeScriptu


Mám rozhraní IBase a proměnnou, která obsahuje několik dalších objektů (v ukázce jsem jen přidal base pro lepší demonstraci)

interface IBase {
    height?:number;
    width?:number;
}

var element = {
    base: {

    }
}

Jak mohu říct, že objekt, který proměnná element.base má, je typu IBase? Vím, že bych mohl vytvořit typ pro proměnnou element, který obsahuje typy base atd., ale je také možné typovat tuto situaci, aniž bych to dělal.

Odpověď č. 1

Odpověď Van den Brinka je dobrá. Jako ukázka ještě jedna možnost:

var element = {
    base: <IBase> {

    }
}

To také poskytne požadovaný intellisense:

Odpověď č. 2

Pokud změníte deklaraci proměnné element na následující, ví, co je base:

var element: { base: IBase; } = {
    base: {
    }
}

Poznámka: můžete také vytvořit pro něj nové rozhraní takto, což ho činí o něco víc znovupoužitelným: interface IElement { base: IBase; } a pak ho použít takto: var element: IElement={ base: {} }

Související články