为什么堆栈跟踪在.ts文件中的一行上显示3个调用

时间:2016-11-08 15:07:09

标签: javascript typescript google-chrome-devtools

我在main.ts中有以下代码行:

platform.bootstrapModule(AppModule);

在通话堆栈中,它显示为3个这样的呼叫:

enter image description here

为什么?

2 个答案:

答案 0 :(得分:2)

是的,确实,这是JS代码

(function (System, SystemJS) {
    (function (require, exports, module, __filename, __dirname, global, GLOBAL) {
        "use strict";
        var platform_browser_dynamic_1 = require("@angular/platform-browser-dynamic");
        var app_module_1 = require("./app.module");
        var platform = platform_browser_dynamic_1.platformBrowserDynamic();
        platform.bootstrapModule(app_module_1.AppModule);
        //# sourceMappingURL=main.js.map
    }).apply(__cjsWrapper.exports, __cjsWrapper.args);
})(System, System);

映射到

platform.bootstrapModule(AppModule);

确实在调用bootstrapModule之前有3个函数调用:

outer IIFEinner IIFEplatform.bootstrapModule(app_module_1.AppModule);

答案 1 :(得分:1)

chrome没有运行打字稿,它运行javascript。 为了运行typescript,有一些工具可以将它转换为javascript(作为构建的一部分或在浏览器的运行时)。 这些工具还会创建一个源地图,将打字稿行映射到javascript行,这样您就可以看到导致问题的原始代码,而不是看到新生成的自动生成的javascript。 所以你在打字稿中的1行实际上是生成的javascript中的多行。

如果你在他们的回购中看到,你可以看到他们也解释了它: TypeScript编译为可读的,基于标准的JavaScript

https://github.com/Microsoft/TypeScript