【发布时间】:2015-04-04 15:27:09
【问题描述】:
我正在使用“this”的硬编码捕获转换一些 TypeScript 代码:
var _this = this;
var querySucceeded = function(data){
this.doSomething(data);
}
var test = this.executeQuery().then(function(data){
_this.querySucceeded(data);
});
使用 lambda:
var querySucceeded = function(data){
this.doSomething(data);
}
var test = this.executeQuery().then((data) => {
this.querySucceeded(data);
});
TypeScript 将 JS 编译成类似于第一个代码块的东西,并且一切都在浏览器中运行良好。问题在于在 Visual Studio 中进行调试时。当我在 lambda 之后检查“this”时,它会显示窗口属性,而不是类上下文。
如果我直接在浏览器中调试,它会显示本地上下文。这是一个已知的问题?可能是JS文件和TS文件的映射有问题?
我正在使用 VS2013 Update 4 和 TypeScript 1.4。
【问题讨论】:
-
这是一个错误。在此处尝试:github.com/Microsoft/TypeScript/…,如果不存在,请打开一个新问题。
-
谢谢。我将其添加为错误。 https://github.com/Microsoft/TypeScript/issues/2617.
标签: visual-studio lambda typescript