我构建了一个接口,它接受所有可能的搜索条件,然后将其传递给一个服务,该服务将把所有值放入服务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;
} ...
最佳答案
在运行时没有接口。它们只存在于静态分析中。您可以在运行时使用Object.keys()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys获取具体实例的密钥。