【问题标题】:Debug Angular/Typescript in visual code appends '_1' to variable在可视化代码中调试 Angular/Typescript 将“_1”附加到变量
【发布时间】:2021-03-12 15:30:44
【问题描述】:

我正在尝试在 Visual Code 中调试 angular/typescript 应用程序。假设我运行以下代码

try {
    ...
} catch (error) {
    console.log(error);
}

假设发生错误,我将在控制台中看到为正常执行而记录的错误。我面临的问题是,如果我在调试模式下运行相同的情况(“针对 localhost 启动 Chrome”)。我会得到:

“未捕获的引用错误:未定义错误”

如果我在调试视图中查看“关闭”部分而不是“本地”部分。我可以访问 error_,其中确实包含在正常执行中通常会记录的内容。

有没有办法在 angular/typescript 应用程序的调试模式下将错误显示为 error 而不是 error_1

我尝试了Typescript/babel import causing "_1.default is not a function" 的建议,但没有成功。

Error preview

【问题讨论】:

  • 为什么不使用调试视图中的监视部分而不是变量 > 闭包。我想你会在那里为你的“错误”变量得到想要的结果
  • @John ,我添加了Error preview,如您所见,我无法在手表部分引用“错误”。
  • 您使用的是什么角度版本?那件事发生在哪里?内部组件/服务?我只是从样板文件中设置了最新的应用程序,无法重现你所拥有的。
  • @JózefPodlecki,事情发生在组件内部。 following link 提供了有关此问题的有用信息,但对我来说还不足以解决此问题。我的角度基于 8.2.14。
  • 你如何为你的前端服务?您是通过终端运行 npm run start 还是在其他地方构建代码?在黑暗中摇摆不定,但是您的 launch.json 文件是什么样的?

标签: angular typescript visual-studio-code


【解决方案1】:

当 ts config 中的 ECMAScript target 版本低于 ES6 时,就会发生这种情况。

{
  "compilerOptions": {
    "target": "ES5",
  }
}

如果不能增加,那就没有办法了。

这可能是由于 async/await 函数被重写为 __awaiter __generator 形式造成的。它甚至没有在这里使用 try catch 概念...

 AppComponent.prototype.functionInComponent = function () {
        return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
            var error_1;
            return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        _a.trys.push([0, 1, , 3]);
                        ...
                    case 1:
                        error_1 = _a.sent();
                        ...
                        return [4 /*yield*/, asyncFunctionAfterConsoleLog];
                    case 2:
                        _a.sent();
                        return [3 /*break*/, 3];
                    case 3: return [2 /*return*/];
                }
            });
        });
    };

【讨论】:

  • 不幸的是,我无法验证,因为我处于无法切换到 ES6 的环境中。我可能会尝试不同的项目,如果我的情况发生变化,我会发布更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多