下面的代码会造成 eslint 报错
try {
// ...
} catch (e) {
console.log('错误信息:' + e)
}
eslint 报错信息如下
Invalid operand for a '+' operation. Operands must each be a number or string, allowing a string + any of: `boolean`, `null`, `RegExp`, `undefined`. Got `unknown`.
你这个地方是eslint的报错,前面的字符串 "错误信息:" 使用 “+” 操作符拼接的是一个异常对象e,你的项目类型检查不允许这样做。如果要获取错误信息,两种:
console.log('错误信息:', e);
或
console.log('错误信息:' + e.message); // 这种的前提e是一个具有message字段的对象。
考虑采用2种解决方法
1)偷懒解决方法
try {
// ...
} catch (e) {
console.log(`错误信息:${<string>e}`)
}
2)不偷懒解决方法
try {
//...
} catch (e) {
const message = e instanceof Error ? e.message : "Unknown error."
console.log('错误信息:' + message)
}
参考链接: