[英]Passing a readonly variable to parent constructor | Typescript
我是 TypeScript 的新手,我正在嘗試將readonly
變量傳遞給父類的構造函數:
abstract class ChildClass extends ParentClass {
private readonly READ_ONLY: number= 1;
public constructor(foo: string)
// 'super' must be called before accessing 'this' in the constructor of a derived class. ts(17009)
super(foo, this.READ_ONLY);
}
}
ChildClass 將被更多的類擴展,因此是抽象的。
有什么辦法可以在super
構造函數中傳遞只讀變量嗎?
這與readonly
無關。
在調用超類的構造函數之前,您不能引用this
的任何屬性。 所以你必須以不同的方式做到這一點。
也許READ_ONLY
是ParentClass
的受保護屬性,然后子類可以為其設置新值。
class ParentClass {
protected readonly READ_ONLY: number = 1;
constructor(foo: string) {
console.log('used READ_ONLY: ', this.READ_ONLY)
}
}
class ChildClass extends ParentClass {
protected readonly READ_ONLY: number = 2;
}
new ParentClass('foo') // used READ_ONLY: 1
new ChildClass('foo') // used READ_ONLY: 2
這是可行的,因為protected
僅意味着對外部private
,但對子類public
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.