我正在生成如下错误消息:
throw `Do not recognize eventType '${eventType}', recognized events are ${recognizedEvents}.`;
问题是认识到事件是一个对象,但是它将只是toString'ed ...无论如何,所以我可以这样做:
throw `Do not recognize eventType '${eventType}', recognized events are ${util.inspect(recognizedEvents)}.`;
问题不仅在于它更加冗长-有时我只是忘了调用util.inspect()。如果直接传递对象,即使TypeScript也让我编译模板文字。确保在日志中对对象进行适当深度检查的一种好的技术是什么?
答案 0 :(得分:1)
您是否更可能记得在每个模板字符串中使用tagged template而不是util.inspect
?
function err(strings, eventType, recognizedEvents) {
return `${strings[0]}${eventType}${strings[1]}${util.inspect(recognizedEvents)}`;
}
throw err`Do not recognize eventType '${eventType}', recognized events are ${recognizedEvents}.`;
结合@JackBashford的使用JSON.stringify
而不是util.inspect
的建议,您可以将对象尽可能地细化。