我有一个从promise接收数据的组件。该功能如下所示:
renderForm(selectedDate) {
this._massEmpService.fetchTransitionFields(selectedDate)
.then(results => {
this.segments = results['segments']['options'];
this.budgetMarkets = results['markets']['options'];
this.roles = results['roles']['options'];
this.languages = results['languages']['options'];
this.incentivePlans = results['incentivePlans']['options'];
this.hierarchy = results['hierarchy']['options'];
this.fieldsLoaded = true;
this.createForm(selectedDate);
});
}
它将数据分配给接口,然后使用这些声明来填充下拉菜单。
我对服务的承诺是:
fetchTransitionFields(effectiveStartDate) {
return new Promise((resolve, reject) => {
this._http.post(this.baseUrl + '/fetchTransitionFields', { "effectiveStartDate": effectiveStartDate }, { "headers": this.headers })
.map((result: Response) => result.json())
.subscribe((results) => resolve(results.data));
});
};
困扰我的是我必须使用括号表示法来访问承诺中的属性。当我尝试results.segments.options
时,我收到错误[ts] Property 'segment' does not exist on type '{}'.
。
我做错了什么是迫使这个?如果它的“正常”那么一切都很好,但它就像应用程序中唯一一个使用这种风格来访问变量的地方,它一直引起我的注意。