typescript webworker onmessage 处理程序错误
typescript webworker onmessage handler error
我无法使用打字稿来编译下面的简单代码片段。
即使我将参数 ev 设置为 MessageEvent 类型。
我试过打字稿 2.8.3 和 2.9.0。
错误信息
错误:(262, 22) TS2345:“(ev: any) => void”类型的参数不可分配给 'MessageEvent' 类型的参数。
属性 'data' 在类型 '(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);
};
我无法使用打字稿来编译下面的简单代码片段。 即使我将参数 ev 设置为 MessageEvent 类型。
我试过打字稿 2.8.3 和 2.9.0。
错误信息
错误:(262, 22) TS2345:“(ev: any) => void”类型的参数不可分配给 'MessageEvent' 类型的参数。 属性 'data' 在类型 '(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);
};