我在Stackoverflow和网络上进行了搜索,发现了这个线程https://github.com/Microsoft/TypeScript/issues/14813,但是它不能解决我的问题。我在使用ng serve --watch编译代码时遇到了此错误。



带有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的一些接口(interface),但是以某种方式对我来说不起作用。

编辑

我的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"
        ]
    }
}

最佳答案

并非所有浏览器都支持 entries 方法。如果仍要使用该方法,并且仍将目标设置为es5,则可以extend当前接口(interface)

declare global {
  interface FormData {
    entries(): Iterator<[USVString, USVString | Blob]>;
  }
}

关于angular - 错误TS2339 : Property 'entries' does not exist on type 'FormData' ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50677868/

10-11 23:55