我构建了一个接口,接受所有潜在的搜索条件,然后将其传递给将所有值都放入服务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;
} ...
答案 0 :(得分:7)
运行时没有接口。它们仅用于静态分析。您可以使用Object.keys()
https://msdn.microsoft.com/en-us/library/6x16t2tx.aspx