【发布时间】:2021-12-23 02:27:35
【问题描述】:
我有以下代码:
var allItems = await assetLoader.loadMore(); // returns (Folder[] & Project[])
allItems.forEach(item => {
console.log(item.getAssetId());
console.log(item.getName());
});
运行代码时出现以下错误Parameter 'item' implicitly has an 'any' type.。
有人可以帮忙吗?
类 AssetLoader {
这是assetLoader来自的类:
export class AssetsDataLoader {
allItems: Folder[] & Project[];
public async loadMore() {
return this.allItems;
}
}
【问题讨论】:
-
那行不通
-
您必须将参数键入到数组函数的回调中,例如
map和forEach。 Typescript(故意)不会为您推断类型,这是 Anders 做出的深思熟虑的决定。所以让它allItems.forEach((item: Folder & Project) => {它应该可以正常工作。 -
这不是我在tsplay.dev/mZbeam看到的错误,请给minimal reproducible example。
Folder[] & Project[]没有什么意义,你可能只想要(Folder & Project)[]:tsplay.dev/NddzdN。
标签: typescript