简单了解TypeScript中如何继承 Error 类
在JavaScript 中很多时候都需要自定义错误,尤其是开发 Node.js 应用的时候。比如一个典型的网站服务器可能需要有 NetworkError, DatabaseError, UnauthorizedError 等。我们希望这些类都拥有 Error 的特性:有错误消息、有调用栈、有方便打印的 toString 等。最直观的实现方式便是 继承 Error 类。但考虑 TypeScript 需要编译到 ES5 兼容性问题会较为复杂, 本文用来帮助理解 TypeScript 中继承 Error 的问题来源以及对应的几种解决方式。为了容易讨论最佳实践,首先明确我们自定义的 CustomError 需要做到哪些功能。下面是 Harttle 的观点:。可以只在 ES6 下产生测试覆盖报告来解决。虽然 CustomError 的对象函数无法使用,但 CustomError 仍然支持 protected 级别的方法供子类使用,阉割的地方在于自己不能调用。由于 JavaScript 中对象属性必须在构造函数内赋值,因此对象属性也不会受到影响。
下载地址
用户评论