我在Stackoverflow上搜索并在网上找到了这个帖子https://github.com/Microsoft/TypeScript/issues/14813,但它并没有解决我的问题。我在使用ng serve --watch
编译代码时遇到此错误。
错误TS2339:属性'条目'类型' FormData'。
上不存在
这部分fd.entries()
触发了错误......任何想法在这里发生了什么?
onFileSelected(event) {
const fd = new FormData;
for (const file of event.target.files) {
fd.append('thumbnail', file, file.name);
const entries = fd.entries();
// some other methods are called here e. g. upload the images
for (const pair of entries) {
fd.delete(pair[0]);
}
}
}
我看到那里(https://github.com/Microsoft/TypeScript/blob/master/src/lib/dom.iterable.d.ts)是entries
的某个界面,但不知怎的,这对我不起作用。
修改
我的tsconfig.json
看起来像这样
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}
答案 0 :(得分:2)
除非您正在编译ES6,否则TypeScript不支持它。
2.1.300-rc1-008673
如果是es6,那么它将起作用。
答案 1 :(得分:1)
所有浏览器都不支持方法entries
。如果您仍然想要使用该方法,并且仍然将目标设置为es5,则可以extend当前界面
declare global {
interface FormData {
entries(): Iterator<[USVString, USVString | Blob]>;
}
}
答案 2 :(得分:1)
您需要在-ObjectId
的{{1}}列表中添加“ dom.iterable”,例如:
lib
答案 3 :(得分:-1)
只需使用 Object().entries(() => ) 语法。