我只想扩展标准的javascriptError
类。我想添加另一个属性:code
,但是以某种方式,打字稿不允许我这样做。
export class HttpError extends Error {
public message: string
public errorCode: number
constructor(message: string, errorCode: number) {
super(message) // Add a
(this as any).code = errorCode
}
}
打字稿错误在处super(message)
:
This expression is not callable.
Type 'void' has no call signatures.ts(2349)
但是,在打字稿文档中:https : //www.typescriptlang.org/docs/handbook/classes.html它们也以相同的方式工作。
我的代码有什么问题?
以我的主观观点,这是一个很好的例子,说明了为什么省略分号不是一个好习惯。尽管Javascript支持自动分号插入,但它通常会导致类似这样的意外错误。
在编译器看到的情况下重新格式化代码,该错误变得显而易见:
constructor(message: string, errorCode: number) {
super(message)(this as any).code = errorCode
}
如果在应有的地方添加分号,问题就解决了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句