我在 typescript 的 codeplex 论坛上问过这个问题,但没有得到答案,所以我在这里问。对于给定的 TypeScript 类声明,例如 Bing 地图 ( https://bingmapsts.codeplex.com/ ),有人将如何注册事件处理程序?
在 Map 类(在 Microsoft.Maps.d.ts 中)声明了几个事件:
viewchange: () => any;
viewchangeend: () => any;
viewchangestart: () => any;
而且我尝试在打字稿文件中挂钩如下函数,但它从未被调用:
///<reference path="Bing/Microsoft.Maps.All.d.ts" />
window.onload = function()
{
var map = new Microsoft.Maps.Map(document.getElementById('map'),
{
backgroundColor: 0,
});
map.click = () => alert('click');
map.viewchangestart = () => alert('viewchangestart');
}
在传统的 javascript 中,我会使用以下内容:
Microsoft.Maps.Events.addHandler(map, 'viewchangestart', function (e)
{
alert('viewchangestart');
});
但是打字稿声明中没有这样的方法,因为我似乎无法从 .ts 文件中引用虚拟地球地图控件,所以我不确定我该怎么做。