我在我的VS 2012 Update 3中安装了0.9.0.1版本的typescript编译器。
我想要分派一个自定义事件,但是在lib.d.ts中声明的环境变量没有暴露出预期的构造函数签名。
当我使用以下代码:
var myEvent = new CustomEvent("my:event:type", { detail: { some: "data"} });
window.dispatchEvent(myEvent);
由于TypeScript编译器认为,只有
var myEvent = new CustomEvent();
这是正确的。
后者在Chrome 27和Aurora 24.02中是错误的,因为它“缺少参数”。
MDN还列出了实际上是正确的但不适用于TypeScript的构造函数签名。
我的想法是将已知正确的构造函数签名添加到环境变量声明中,但不触碰已发布的lib.d.ts文件。这在技术上是否可行?我找不到正确的语法,而且语言规范也没有提到如何合并两个这样的声明。
或者,我可以直接编辑lib.d.ts文件,在IDE重新启动后,即可提供更新的签名。尽管如此,我仍然不愿以这种方式修改第三方文件。
最后,有没有其他机制可以使用来编写分派自定义事件的TypeScript代码?
(更新:重启IDE会正确重新加载lib.d.ts。另外,更正了虚构的事件类型名称)