我們使用tsc.exe將.ts
文件編譯到各自的.js
文件中。由於某些原因,TypeScript編譯器將var _this = this;
添加爲生成文件的第一行。爲什麼tsc.exe(TypeScript編譯器)添加var _this = this;作爲輸出js文件的第一行?
例如:
declare var define;
define({
});
被編譯成
var _this = this;
define({
});
編譯器與ARGS文件這樣調用:
--comments --module AMD --target ES5
"c:\abc\Scripts\Framework\Modules\Store\TreeStoreMixin.ts" "c:\abc\Scripts\Framework\Client\AppBulletin.ts" ...
(該文件被截斷爲起見簡潔)
爲什麼?我會理解,如果this
是指一個外部函數,所以_this
將捕獲其範圍。但這是一個全局文件級別的範圍,不是嗎? this
在這裏沒有用。我可以指示編譯器不生成它嗎?
您使用的是哪種版本的編譯器?國旗現在還沒有被「 - 評論」一段時間。 –
版本0.8.3.1 – mark
編譯器中的錯誤。強烈建議升級到0.9.7(1.0 Release Candidate)。 –