Javascript 在consupmtion中内联定义类型重新定义

Javascript 在consupmtion中内联定义类型重新定义,javascript,typescript,inline,intellisense,definitelytyped,Javascript,Typescript,Inline,Intellisense,Definitelytyped,有没有一种方法可以通过内联定义重新定义代码定义实体中已经存在的内容?通过///或JSDock语法或类似的方式 我正在用纯JS开发一个定制的Bing地图html层,我使用。我依靠VSCode Intellisence来实现这一点。它几乎涵盖了所有内容,但在某些情况下,我无法访问定义。例如,它是通过继承原型,然后通过定义一些实用方法(在地图注册图层时调用)来构建的: // HtmlPushpinLayer.prototype=新的Microsoft.Maps.CustomOverlay({benea

有没有一种方法可以通过内联定义重新定义代码定义实体中已经存在的内容?通过///或JSDock语法或类似的方式

我正在用纯JS开发一个定制的Bing地图html层,我使用。我依靠VSCode Intellisence来实现这一点。它几乎涵盖了所有内容,但在某些情况下,我无法访问定义。例如,它是通过继承原型,然后通过定义一些实用方法(在地图注册图层时调用)来构建的:

//
HtmlPushpinLayer.prototype=新的Microsoft.Maps.CustomOverlay({beneathLabels:false});
HtmlPushpinLayer.prototype.onAdd=函数(){
var _m=this.getMap(),//\u m将是any类型,因为this.getMap是非类型化的
...
由于新函数重新定义了
onAdd
,因此该函数的
this
只是一个任意函数。它在运行时有
.getMap()
,但我认为不可能为键入定义它

因此,我可以执行类似于
///this.getMap=HtmlPushpinLayer.prototype.getMap
或类似于下面的操作,以便将
\u m
作为

HtmlPushpinLayer.prototype=new Microsoft.Maps.CustomOverlay({beneathLabels:false});
HtmlPushpinLayer.prototype.onAdd=函数(){
/**
*@var{(新的HtmlPushpinLayer()).getMap()}\m
*/
var\u m=this.getMap(),
...

谢谢。

为什么不把它从一个匿名函数换成一个lambda/fat arrow?
HtmlPushpinLayer.prototype.onAdd=function(){
->
HtmlPushpinLayer.prototype.onAdd=()=>{
这样你的this将保存上下文/作用域。@Zze这能实现什么?
这是通过调用提供的(我假设是通过应用或绑定),而不是通过外部作用域。外部作用域的这没有必要的方法。即使这样做可行,我还是希望保持我的代码符合es3,因为它是浏览器js。但是谢谢。