我提供了重载声明postMessage
来表示仅消息签名(而不是 lib.d.ts 三参数版本)。
declare function postMessage(message: any): void;
我没有看到任何视觉错误、红色曲线等,但我确实遇到了构建错误。
构建:提供的参数与调用目标的任何签名都不匹配。
构建:无法为“调用”表达式选择重载。
在这条线上:
postMessage(message);
这是选择我提供的过载的错误还是我在做一些愚蠢的事情?
我提供了重载声明postMessage
来表示仅消息签名(而不是 lib.d.ts 三参数版本)。
declare function postMessage(message: any): void;
我没有看到任何视觉错误、红色曲线等,但我确实遇到了构建错误。
构建:提供的参数与调用目标的任何签名都不匹配。
构建:无法为“调用”表达式选择重载。
在这条线上:
postMessage(message);
这是选择我提供的过载的错误还是我在做一些愚蠢的事情?
对于编译器来说,这似乎是一个有效的错误报告。以下工作正常:
declare function foo(message: any, targetOrigin: string, ports?: any): void;
declare function foo(message: any): void;
foo('asdf');
但是以下会在编译时出错
declare function postMessage(message: any): void;
postMessage('asdf');
与根部的其他功能相同,lib.d.ts
例如:
declare function blur(message: any): void;
blur('asdf');
几乎就好像它declare
甚至没有被解析。以下给出了相同的错误:
postMessage('asdf');
使用no-default-lib
参考标签:
/// <reference no-default-lib="true"/>
declare function postMessage(message: any): void;
postMessage('asdf');
临时工...
这是工人的临时工作......
(function(self: Worker){
self.postMessage('a');
self.postMessage({ etc: 'a' });
}(<any>self));
不理想,但它可以工作,因为接口对何时在上下文而不是上下文中Worker
有正确的定义。postMessage
self
window