【问题标题】:typescript webworker onmessage handler errortypescript webworker onmessage handler错误
【发布时间】:2023-03-12 18:21:02
【问题描述】:

我无法使用 typescript 来编译下面的简单代码 sn-p。 即使我将参数 ev 设置为 MessageEvent 类型。

我已尝试使用 typescript 2.8.3 和 2.9.0。

错误信息

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

代码片段

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

【问题讨论】:

    标签: typescript web-worker


    【解决方案1】:

    替换这个:

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

    有了这个:

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

    【讨论】:

    • 噢!我尝试了除那个之外的所有排列。那成功了。谢谢!
    猜你喜欢
    • 2021-03-01
    • 1970-01-01
    • 2019-11-15
    • 2020-04-06
    • 2022-06-27
    • 1970-01-01
    • 2014-10-07
    • 2020-12-24
    • 2021-12-03
    相关资源
    最近更新 更多