在消费时,内联肯定是重新定义的

时间:2017-12-06 22:47:32

标签: javascript typescript inline intellisense definitelytyped

有没有办法通过内联定义在代码定义的实体中重新/定义?通过///或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(),
    ...

谢谢。

0 个答案:

没有答案