【发布时间】:2018-08-03 15:37:53
【问题描述】:
我有一个想用 TypeScript 编写的网络工作者。
问题是Worker.postMessage - TypeScript 假定每个脚本都将在窗口上下文中加载,因此需要 Window.postMessage,它具有不同的语法。
这意味着当我尝试使用 postMessage 时,TypeScript 会引发错误。
有一些方法可以解决这个问题,例如通过重新定义函数declare function postMessage(message: any),但其中大多数充其量只是丑陋的组合 - TS 的全部意义在于检查类型,声明我自己的虚拟对象会打败它。
出于同样的原因 - window(及其上下文中的所有内容)在此上下文中不可用,应该被 TS 视为错误。例如alert('message') 应该导致 TS 警告,而不是运行时错误。
有什么方法可以让文件获取实际定义(来自webworker.es2016.d.ts)并以某种方式告诉 TypeScript 这段代码将在工作上下文而不是窗口中运行?
【问题讨论】:
标签: typescript web-worker typescript-typings