1 回答

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
由于myArraytype 是一個(gè)數(shù)組,TypeScript 應(yīng)該阻止您分配單個(gè)項(xiàng)目。如果您使用不支持類型的 Javascript,或者使用刪除構(gòu)建時(shí)鍵入的 babble 插件(在這種情況下,IDE 應(yīng)該警告您),就會(huì)發(fā)生這種情況。
JS中這個(gè)問題的可能解決方案:
您可以連接myArray到一個(gè)空數(shù)組。如果myArray是數(shù)組或單個(gè)項(xiàng)目,則結(jié)果將始終是數(shù)組:
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給另一個(gè)數(shù)組,并使用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;
}
添加回答
舉報(bào)