39 lines
664 B
TypeScript
39 lines
664 B
TypeScript
//// [abstractProperty.ts]
|
|
abstract class A {
|
|
protected abstract x: string;
|
|
public foo() {
|
|
console.log(this.x);
|
|
}
|
|
}
|
|
|
|
class B extends A {
|
|
protected x = 'B.x';
|
|
}
|
|
|
|
class C extends A {
|
|
protected get x() { return 'C.x' };
|
|
}
|
|
|
|
|
|
//// [abstractProperty.js]
|
|
class A {
|
|
foo() {
|
|
console.log(this.x);
|
|
}
|
|
}
|
|
class B extends A {
|
|
constructor() {
|
|
super(...arguments);
|
|
Object.defineProperty(this, "x", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: 'B.x'
|
|
});
|
|
}
|
|
}
|
|
class C extends A {
|
|
get x() { return 'C.x'; }
|
|
;
|
|
}
|