gpt4 book ai didi

debugging - 创建一个可以是空操作的 typescript 函数

转载 作者:搜寻专家 更新时间:2023-10-30 21:06:00 25 4
gpt4 key购买 nike

我想创建一个 TRAP function在 Debug模式下它是“调试器”;调用并在 Release模式下它什么也不做,最好甚至不调用/返回。

我想出了:

// declare it
var trap = function () { debugger; }

// ...

// use it
trap();

然后对于 Release模式,它是:

var trap = function () { }

那么,问题 1 是,这是最好的方法吗?

问题 2 是,有没有办法围绕它执行“#if DEBUG、#else、#endif”类型的编译指示,或者我们是否需要在构建生产环境时手动更改它?

最佳答案

我不确定你是如何准确定义“调试”模式的,但是如果 Debug模式不仅仅是编译脚本那么我通常只是像你所做的那样对函数进行条件化(我已经研究过一些 JavaScript 应用程序,例如,我们有一个“调试”模式,即使发布了缩小脚本以帮助解决生产中的客户问题......它是通过 cookie 或查询字符串激活的):

// this would be set for example to true when
// in debug mode
export var isDebugModeActive: boolean = false;

export var trap = () => {
debugger;
};

if (isDebugModeActive) {
// since you may not want to conditionalize
// through a #PRAGMA like system every call to
// trap, this just no-ops the function
trap = () => {};
}

// or
trap = () => {
// checking a boolean is going to be
// really fast ... :)
if (isDebugModeActive) {
debugger;
}
}

当您不希望使用“调试”模式时效果很好,但有时会向浏览器控制台日志输出额外的信息。

关于debugging - 创建一个可以是空操作的 typescript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23248852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com