是否可以循环访问界面中的所有对象以获取键和值?

时间:2016-05-13 16:24:56

标签: typescript angular

我构建了一个接口,接受所有潜在的搜索条件,然后将其传递给将所有值都放入服务URL的服务。是否可以遍历界面中的所有对象,我能够检索键和值吗?我最初写了一篇很长的if ... else if ...声明(下面的示例。)我不确定我是否会以最佳方式解决这个问题

界面:

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
    ...
}

服务:

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;
    }  ...

1 个答案:

答案 0 :(得分:7)

运行时没有接口。它们仅用于静态分析。您可以使用Object.keys() https://msdn.microsoft.com/en-us/library/6x16t2tx.aspx

获取运行时具体实例的键