You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ts-node/esm下如何将Symbol类型异常对象转为可读字符串?

解决ts-node/esm下Symbol类型异常的可读字符串转换问题

当.ts文件存在语法错误,使用ts-node/esm加载应用时,uncaughtException抛出的Symbol(nodejs.util.inspect.custom)类型异常,直接调用err.toString()会返回空值,以下是几种将其转换为可读字符串的实用方式:

  • 利用Node.js内置的util.inspect()
    这个Symbol本身就是Node.js用于自定义对象检查的标识,util.inspect()会自动触发对应的自定义逻辑,完整输出错误详情:

    import util from 'util';
    process.on('uncaughtException', (err) => {
      const readableError = util.inspect(err);
      console.error(readableError);
    });
    
  • 直接提取异常的message属性
    这类TS语法错误异常通常会携带message字段,直接读取该属性就能获取具体的错误描述:

    process.on('uncaughtException', (err) => {
      const readableError = err.message || '未知错误';
      console.error(readableError);
    });
    
  • 兼容兜底处理
    为了适配其他可能的异常类型,可以结合两种方式做兜底,优先用util.inspect解析,失败则 fallback 到toString():

    import util from 'util';
    process.on('uncaughtException', (err) => {
      let readableError;
      try {
        readableError = util.inspect(err);
      } catch (e) {
        readableError = err.toString() || '无法解析的错误';
      }
      console.error(readableError);
    });
    

内容的提问来源于stack exchange,提问作者T.Todua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 04:35:58