【发布时间】:2021-06-15 20:06:05
【问题描述】:
有 Typescript 项目。
此时:postMessage(result);
我明白了..
Expected 2-3 arguments, but got 1.预期有 2-3 个参数,但得到了 1 个。
此时:postMessage(result, '*');
我明白了..
Uncaught TypeError: Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope': Overload resolution failed.
at runParser
Typescript 在这里想要什么?是一两个论据吗?为什么这会导致问题?
【问题讨论】:
-
那么第一个显然是错误的,因为它需要 2 或 3 个参数。请参阅developer.mozilla.org/en-US/docs/Web/API/Window/postMessage 的文档。第二个应该是
window.postMessage,其中window是您要发布到的窗口。 -
这个错误发生在worker作用域,而不是Window作用域
-
对,对不起。这绝对很奇怪,因为在这种情况下允许 1 个值。我发现了一个类似的问题可能会有所帮助。 stackoverflow.com/questions/47299899/….
-
哦,尝试在编辑器中导航到
postMessage(例如,在 VSCode 中按 ctrl-click)。我敢打赌它指向的是窗口对象的版本,而不是工作者版本。我敢打赌,这就是它抱怨的原因。尝试更明确(我认为语法是self.postMessage(result))。
标签: typescript