2016-05-13 7 views
2

Ich baute eine Schnittstelle, die alle potenziellen Suchkriterien akzeptiert und dann an einen Dienst weiterleitet, der alle Werte in die Service-URL einträgt. Ist es möglich, alle Objekte in der Schnittstelle zu durchlaufen und kann ich sowohl den Schlüssel als auch den Wert abrufen? Ich schrieb zunächst eine lange if ... else if ... Aussage, die ich nicht sicher bin, ob ich darüber in der besten WeiseIst es möglich, alle Objekte in einer Schnittstelle durchzulaufen, um Schlüssel und Wert zu erhalten?

Schnittstelle werde (Beispiel unten.):

export interface ILegislatorSearchCriteria { 
    all_legislators?: string; 
    in_office?: string; // true false 
    party?: string; // 'R', 'D', or 'I' 
    gender?: string; // 'M' or 'F' 
    state?: string; // Two letter code 
    ... 
} 

Service:

getLegislators(crit: ILegislatorSearchCriteria): Observable<ILegislator[]> { 
    let serviceUrl = this._legislatorUrl; 

    if (crit.all_legislators !== null) { 
     serviceUrl += '&all_legislators=' + crit.all_legislators; 
    } else if (crit.in_office !== null) { 
     serviceUrl += '&in_office=' + crit.all_legislators; 
    } else if (crit.party) { 
     serviceUrl += '&party=' + crit.party; 
    } else if (crit.gender) { 
     serviceUrl += '&gender=' + crit.gender; 
    } ... 

Antwort

7

Zur Laufzeit gibt es keine Schnittstellen. Sie existieren nur für die statische Analyse. Sie können die Schlüssel der konkreten Instanz, die Sie zur Laufzeit haben, mit Object.keys()

+1

Ah, diese blöde MDN-Site. Nur weil ich aus Österreich komme ist kein Grund die deutsche Seite standardmäßig anzugeben ;-) Danke für den Hinweis. –

+0

Aber wenn Sie versuchen, Eingabe von XHR oder dergleichen zu sanieren, um es an eine Schnittstelle anzupassen, hilft das nicht. –

+0

Entschuldigung, ich verstehe nicht, was du meinst. –

Verwandte Themen