1 回答
TA贡献1770条经验 获得超3个赞
由于myArraytype 是一个数组,TypeScript 应该阻止您分配单个项目。如果您使用不支持类型的 Javascript,或者使用删除构建时键入的 babble 插件(在这种情况下,IDE 应该警告您),就会发生这种情况。
JS中这个问题的可能解决方案:
您可以连接myArray到一个空数组。如果myArray是数组或单个项目,则结果将始终是数组:
async function writeToDB(myArray: []) {
const db = await openDB("DomainsDB", 1);
const tx = db.transaction("Domains", "readwrite");
const arr = [].concat(myArray); // the result is always an array
arr.forEach(async(r: any) => {
await tx.store.add(r["SearchHeader"]);
});
await tx.done;
}
另一种选择是分配myArray给另一个数组,并使用Array.flat():
async function writeToDB(myArray: []) {
const db = await openDB("DomainsDB", 1);
const tx = db.transaction("Domains", "readwrite");
const arr = [myArray].flat(); // the result is always an array
arr.forEach(async(r: any) => {
await tx.store.add(r["SearchHeader"]);
});
await tx.done;
}
添加回答
举报