有没有办法通过内联定义在代码定义的实体中重新/定义?通过///或JSDock语法或类似的东西?
我在纯JS中开发自定义Bing map html图层,并使用Bing Maps TypeScript Definitions。我依靠VSCode Intellisence。它几乎涵盖了所有内容,但在某些情况下,我无法访问定义。例如,它是通过继承原型然后通过定义一些实用方法(在地图注册图层时调用)构建的:
/// <reference path="../../../node_modules/@types/bingmaps" />
HtmlPushpinLayer.prototype = new Microsoft.Maps.CustomOverlay({ beneathLabels: false });
HtmlPushpinLayer.prototype.onAdd = function () {
var _m = this.getMap(), //_m will be of type any since this.getMap is untyped
...
由于onAdd
被新功能重新定义,因此此功能this
只是一个任意的功能。它在运行时确实有.getMap()
但我不认为可以为输入定义它。
我可以执行/// this.getMap = HtmlPushpinLayer.prototype.getMap
之类的操作或类似下面的操作,以便将_m
输入为Map Class的实例吗?
HtmlPushpinLayer.prototype = new Microsoft.Maps.CustomOverlay({ beneathLabels: false });
HtmlPushpinLayer.prototype.onAdd = function () {
/**
* @var {(new HtmlPushpinLayer()).getMap()} _m
*/
var _m = this.getMap(),
...
谢谢。