我的 VS 2012 Update 3 中安装了 typescript 编译器的 0.9.0.1 版本。
我想调度一个自定义事件,但在 lib.d.ts 中声明的环境变量没有公开预期的构造函数签名。
当我使用
var myEvent = new CustomEvent("my:event:type", { detail: { some: "data"} });
window.dispatchEvent(myEvent);
类型脚本编译器抱怨,因为据他说,只有
var myEvent = new CustomEvent();
是正确的。
根据 Chrome 27 和 Aurora 24.02,后者是错误的,因为“缺少参数”
MDN 还列出了实际正确但不是用于打字稿的构造函数签名。
我现在的想法是将已知正确的构造函数签名添加到环境变量声明中,但不触及随附的 lib.d.ts 文件。这在技术上可行吗?我想不出正确的语法,语言规范也没有提到如何合并两个这样的声明。
或者,我只是编辑了 lib.d.ts,它在重新启动 IDE 后为我提供了更新的签名。不过,我宁愿不要以这种方式篡改第三方文件。
最后,我(sh|c)是否可以使用其他一些机制来编写调度自定义事件的类型脚本代码?
(更新:重新启动 IDE 会正确重新加载 lib.d.ts。此外,更正了虚构的事件类型名称)