打字稿webworker onmessage处理程序错误

时间:2018-05-03 04:39:13

标签: typescript web-worker

我无法获取typescript来编译下面的简单代码片段。 即使我将参数ev设置为MessageEvent类型。

我尝试过使用typescript 2.8.3和2.9.0。

错误消息

错误:(262,22)TS2345:类型'(ev:any)=>的参数void'不能分配给'MessageEvent'类型的参数。 类型'(ev:any)=>中缺少属性'数据'无效”。

代码snipet

const worker = new Worker('./worker/render-worker.ts');
worker.onmessage((ev) => {
  console.log(ev.data);
});

tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "sourceMap": true,
    "inlineSourceMap": false,
    "inlineSources": false,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es6",
    "lib": [
      "es2017",
      "scripthost",
      "webworker",
      "dom"
    ]
  }
}

1 个答案:

答案 0 :(得分:1)

替换它:

worker.onmessage((ev) => {
  console.log(ev.data);
});

有了这个:

worker.onmessage = (ev) => {
  console.log(ev.data);
};