2016-04-06 5 views
1

Das Objekt sieht aus wie eine Mischung aus Wörterbuch und regelmäßigen JavaScript-Objekt:Wie beschreibt man die Form dieses Objekts in TypeScript?

var obj = { 
    'dynamic prop1': { }, 
    'dynamic prop2': function() { }, 
    'dynamic prop3': function() { }, 
    'dynamic prop4': function() { }, 

    func: function() {}, 
    prop: null 
}; 

Die Mehrheit der Eigenschaften wird durch stringbasierte (‚dynamische Stütze‘) Eigenschaften und enthält entweder Objekt dargestellt Objekt zugewiesen werden, oder Funktion.

Zusätzlich wird es zwei zusätzliche Eigenschaften enthalten: Prop und Func.

Antwort

1

Dies ist ein Text, also ist es keine Code-only-Antwort.

interface MyObjType { 
    [key: string]: (() => void) | { maybeYouHaveSomePropertiesToDeclare?: string }; 
    func(): void; 
    prop: any; 
} 
+0

Es gibt ein Problem beim Mischen von String-Indexern und realen Eigenschaften. Der Compiler sagt, dass func dem String-Indexer nicht zugewiesen werden kann. –

+0

Der String-Indextyp muss dem Typ aller Eigenschaften zugeordnet werden können (daher der erste Teil des Union-Typs, der im Beispiel gezeigt wird). –

+0

Verstanden! Danke vielmals! –

Verwandte Themen