1
我有一個抽象類Section
將用於表示可以是有效的或無效的文檔的一部分。這些部分也可以嵌入部分。如果部分包含無效的內部部分,則該部分無效。在TypeScript中獲取從某種類型派生的類型屬性的屬性值?
我創建的類ASection1
和ASection2
爲使用它們作爲MySection
內部部分中,向其中驗證過程是通過performValidation()
裝置調用的目的。
如何獲取從MySection類派生的類型的屬性。我需要關於抽象類反射邏輯的幫助,如下所述。
abstract class Section {
constructor(public name: string) {
}
performValidation(): boolean {
let result: boolean = true;
//HELP IS NEEDED HERE!!!
//get all properties of this instance
//whose type inherit from "Section"
//and execute Validate() on each of them
//one at a time, if any of them returns
//false, return false.
return this.Validate();
}
abstract Validate(): boolean;
}
class ASection1 extends Section {
constructor() {
super("Section example 1");
}
Validate(): boolean {
//validation logic goes here
}
}
class ASection2 extends Section {
constructor() {
super("Section example 2");
}
Validate(): boolean {
//validation logic goes here
}
}
class MySection extends Section {
constructor() {
super("My Section");
}
subsection1: ASection1;
subsection2: ASection2;
prop1: number;
Validate(): boolean {
return this.prop1 > 100;
}
}
//run
let mySect = new MySection();
mySect.prop1 = 101;
mySect.subsection1 = new ASection1();
mySect.subsection2 = new ASection2();
mySect.performValidation();
謝謝。
爲什麼你不只是將部分存儲在一個Map數組中,而不是未知的單個屬性? –