属性'bind'在类型'()=> any'上不存在

时间:2019-07-01 08:01:44

标签: javascript typescript

所以我已经同时使用Javascript和Typescript了一段时间了,这个应该真的很容易。但是我从不需要使用bind的Typescript,这让我感到困惑。

这是来自MDN的示例。

var module = {
  x: 42,
  getX: function() {
    return this.x;
  }
}

var unboundGetX = module.getX;
console.log(unboundGetX()); // The function gets invoked at the global scope
// expected output: undefined

var boundGetX = unboundGetX.bind(module);
console.log(boundGetX());
// expected output: 42

打字稿说Property 'bind' does not exist on type '() => string'.ts(2339)

我知道它确实存在,它只是一个函数。

为什么键入的函数和箭头函数相同?

const f1 = function() {}; // const f1: () => void
const f2 = () => {};      // const f2: () => void

编辑:

tsconfig.json

{
    "compileOnSave": false,
    "compilerOptions": {
        "importHelpers": true,
        "outDir": "./dist/out-tsc",
        "sourceMap": true,
        "declaration": false,
        "moduleResolution": "node",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "target": "es5",
        "typeRoots": [
            "node_modules/@types"
        ],
        "lib": [
            "es2017",
            "dom"
        ],
        "module": "es2015",
        "baseUrl": "./"
    }
}

1 个答案:

答案 0 :(得分:0)

此作品有效:

this.chartData = Object.assign({}, result);
this.chartData = {...result};