Optionaldebug初始化配置,挂载在原型上,所有实例共享。
可变——可在 constructor 中通过 this.debugConfig!.name = '...'
或直接赋值实例自有属性来按实例定制。改原型字段影响所有实例,
改实例自有属性仅影响该实例。
Optionaldebug运行期调试开关,setDebug() 后成为实例自有属性,每个实例独立。
可变——可直接读写 this.debugSettings。setDebug() 是推荐方式
(提供合并语义),但手动修改同样有效。
设置调试开关。
setDebug(true) — 开启全局调试setDebug(false) — 关闭全局调试setDebug({ fetch: true }) — 仅开启 fetch scope,与已有 settings 合并setDebug() — 无参调用为 no-opOptionaldebug: boolean | Partial<Settings>判断指定 scope 是否应输出调试信息。
优先级(由高到低):
settings[scope](精确匹配)settings[ns](取 scope 中第一个 . 前的命名空间)settings.debug(全局开关)Optionalscope: string | Exclude<keyof Settings, "debug"> | null在 shouldDebug(scope) 为 true 时输出调试信息,否则静默返回。
输出格式(默认):[时间戳] [name] [scope] ...args
颜色和格式可通过 DebugConfiguration 定制。
当前调试 scope,传 null / undefined 表示无 scope
要输出的内容
获取当前调用栈,返回每帧的文本数组。
基于 new Error().stack,兼容所有 JS 运行时(V8 / JSC / SpiderMonkey)。
V8 环境可用的 Error.captureStackTrace 能更精确排除内部帧,
但作为通用库不依赖非标准 API。
OptionalskipFrames: number— 额外跳过的栈帧数。默认 0
("Error" 行始终被排除)。典型用法:传 1 跳过 getStack 自身,
传 2 再加上调用方的 wrapper。
栈帧字符串数组,每帧已 trim 首尾空白
debuggable返回的 trait 接口,供 interface 声明合并使用。