gpt4 book ai didi

typescript - 在 angular2 typescript 方法中指定返回类型

转载 作者:搜寻专家 更新时间:2023-10-30 21:30:53 25 4
gpt4 key购买 nike

我有一个数据访问方法,在该方法中我使用 map 将散列转换为数组,这样我就可以在我的 View 中迭代它们:

public getCrawlsStatuses():Observable<ICrawlsStatus[]> {

let _statusesURL:string = `${this.API_URL}/crawl_statuses`;

return this._http.get(_statusesURL)
.map((res:Response) => {
let statuses:ICrawlsStatus[] = [];
Object.keys(res.json()).map(key => {
statuses.push({
name: key,
total: res.json()[key]
})
});
return statuses;
})
.catch(CrawlsService.onError);
}

但是我发现变量状态有点多余,所以决定通过简单地利用可观察对象的 map 方法的返回来缩短映射:

public getCrawlsStatuses():Observable<ICrawlsStatus[]> {

let _statusesURL:string = `${this.API_URL}/crawl_statuses`;

return this._http.get(_statusesURL)
.map((res:Response) => {
return Object.keys(res.json()).map(key => {
return {
name: key,
total: res.json()[key]
}
});
})
.catch(CrawlsService.onError);
}

就类型检查而言,这对于此处之外的组件来说工作正常,因为它们需要期望 crawlsStatuses: ICrawlsStatus[]; 但对于我来说,我无法找到一种方法来制作返回的对象内部有一个类型,类似于:

return <ICrawlsStatus>{
name: key,
total: res.json()[key]
}

如果返回的键与我的界面不匹配,我想得到一个错误。例如名字,完全......

最佳答案

But for the life of me I can't find a way to make the returned object to have a type internally to, something like

只需创建一个局部变量:

const result: ICrawlsStatus = {
name: key,
total: res.json()[key]
}
return result;

更多

你应该尽可能避免类型断言:https://basarat.gitbooks.io/typescript/content/docs/types/type-assertion.html

关于typescript - 在 angular2 typescript 方法中指定返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37086587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com