【发布时间】:2016-03-03 09:25:34
【问题描述】:
有什么方法可以告诉 TypeScript 编译器外部函数的当前上下文是什么?最好在函数本身的签名上。
目前我正在使用类型转换来解决这个问题。
这里是一个示例代码:
module ui
{
class Hyperlink
{
element: HTMLAnchorElement;
constructor(url:string,text:string){
this.element = document.createElement("a");
this.element.setAttribute("href",url);
this.element.innerText = text;
this.element.addEventListener(
"click",
genericOutOfClassFunction.bind(this), <----- binds the current context
false
);
// ...
}
}
// [...]
function genericOutOfClassFunction(e: Event) {
var el = this.element; // <---------- compiler error
// ...
// alternatively, I've being using:
var self = <Hyperlink>this;
var el = self.element; // <--------- no error, but ugly =(
// ...
}
// [...]
}
【问题讨论】:
标签: javascript casting typescript1.6