typescript - typescript webworker onmessage handler错误
问题描述
我无法使用打字稿来编译下面的简单代码片段。即使我将参数 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"
]
}
}
解决方案
替换这个:
worker.onmessage((ev) => {
console.log(ev.data);
});
有了这个:
worker.onmessage = (ev) => {
console.log(ev.data);
};
推荐阅读
- javascript - 如何在javascript中获取Google日历中单个日历的事件文本
- python - Python列表分配错误但打印正确的结果
- react-native - 列表项数据已填充,但数据未显示在平面列表中
- java - 有没有办法从文件中读取信息并使用此代码在另一个文件上打印出来?
- node.js - Mongodb 4+ findOneAndUpdate() returnNewDocument not working
- google-cloud-vision - 每个文本的 Google Cloud Vision 准确度返回 0.0
- c - posix_spawn 管道 dmesg 到 python 脚本
- github - 如何通过 github 操作或其他工具安排 pr 检查重新运行?
- reactjs - 使用 React JS 创建 nft mint 按钮时出现问题
- mongodb - mongodb 无法依靠搜索结果