我遇到了这个烦人的TypeScript错误:
错误TS2488:类型'{}'必须具有返回迭代器的'Symbol.iterator'方法。
正如您在我的代码中看到的那样,我正在使用传播运算符。经过一些研究,我发现我必须用tsconfig.json
更新我的"target": "es6"
,但没有任何改变。我想念什么?
功能
formatFileName(e) {
let files = e.target.files;
this.test = Array.from(files).reduce((acc, cur) => [
...acc, {
name: cur.name.replace(/^.*\\/, "")
}
], [])
}
TS CONFIG
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es6",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}
TS CONFIG APP(如果有帮助)
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es2015",
"types": [],
"moduleResolution": "node",
"target": "es6",
},
"exclude": [
"src/test.ts",
"**/*.spec.ts"
]
}
答案 0 :(得分:0)
我解决了这个问题。我注意到在“ lib” tsconfig.json文件中未显示“ es2015”(如this答案中所建议),但是由于某种原因,它没有进行任何更改。
所以我转到功能'formatFileName(e)'并分配给this.test文件数组,在此声明之后,我应用了reduce函数进行操作。
固定功能
formatFileName(e) {
let files = e.target.files;
this.test = Array.from(files)
this.test.reduce((acc, cur) => [
...acc, {
name: cur.name.replace(/^.*\\/, "")
}
], [])
}