简单了解TypeScript中如何继承 Error 类(2)

虽然 CustomError 的对象函数无法使用,但 CustomError 仍然支持 protected 级别的方法供子类使用,阉割的地方在于自己不能调用。 由于 JavaScript 中对象属性必须在构造函数内赋值,因此对象属性也不会受到影响。也就是说:

class CustomError extends Error { count: number = 0 constructor(msg) { super(msg) this.count // OK,属性不受影响 this.print() // TypeError: _this.print is not a function,因为 this 被替换了 } print() { console.log(this.stack) } } class DerivedError extends CustomError { constructor(msg) { super(msg) super.print() // OK,因为 print 是直接从父类原型获取的,即 `_super.prototype.print` } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/a80551718c2a03d8088768745c078d12.html