对于给定的tsconfig.json,
{
"compilerOptions": {
"lib": ["es2015", "dom"]
},
"files": [
"./project1/tstut.ts",
"./project1/worker.ts"
]
}1)
对于以下代码(./project1/tstut.ts),
if(window.Worker){
console.log('Workers are available');
}
....
let worker: Worker = new Worker('worker.js');
worker.postMessage('do some work')如何解决下面的打字错误?
Property 'Worker' does not exist on type 'Window'2)
对于以下工作人员代码(./project1/worker.ts),
self.addEventListener('message', (e) => {
// console.log(e)
if(e.data === 'do some work'){
console.log('Worker is about to start some work');
let count: number =0;
for(let i: number=0; i<1000; i++){
count += i;
}
self.postMessage({message:count});
}
})JS允许语法self.postMessage({message: count})
https://github.com/Microsoft/TypeScript/issues/582
考虑到场景不适合我的情况。
如何解决postMessage()的以下错误?浅谈tsc的运行
Expecting 2-3 arguments, but got 1
发布于 2018-05-18 23:39:48
工人们不生活在窗口对象上。
if (typeof(Worker) !== "undefined") {
// Yes! Web worker support!
// Some code.....
} else {
// Sorry! No Web Worker support..
}若要避免webworker postMessage错误,请在tsconfig中使用webworker库或如下所示
const ctx: Worker = self as any;
...
ctx.postMessage({message:count});您的代码示例
tstut.js
if(typeof(Worker) !== 'undefined'){
const worker = new Worker('worker.js');
worker.postMessage('do some work');
worker.addEventListener('message', function (e) {
//console.log(e);
console.log(e.data);
});
}worker.js (这里不需要检查员工支持)
const ctx: Worker = self as any;
ctx.addEventListener('message', (e) => {
// console.log(e)
if (e.data === 'do some work') {
console.log('Worker is about to start some work');
let count: number = 0;
for (let i: number = 0; i < 1000; i++) {
count += i;
}
ctx.postMessage({ message: count });
}
})https://stackoverflow.com/questions/50402004
复制相似问题