1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
/// <reference path='fourslash.ts' />
// @noImplicitOverride: true
////abstract class A {
//// abstract get a(): number | string;
//// abstract get b(): this;
//// abstract get c(): A;
////
//// abstract set d(arg: number | string);
//// abstract set e(arg: this);
//// abstract set f(arg: A);
////
//// abstract get g(): string;
//// abstract set g(newName: string);
////}
////
////// Don't need to add anything in this case.
////abstract class B extends A {}
////
////class C extends A {}
verify.codeFix({
description: "Implement inherited abstract class",
newFileContent:
`abstract class A {
abstract get a(): number | string;
abstract get b(): this;
abstract get c(): A;
abstract set d(arg: number | string);
abstract set e(arg: this);
abstract set f(arg: A);
abstract get g(): string;
abstract set g(newName: string);
}
// Don't need to add anything in this case.
abstract class B extends A {}
class C extends A {
override get a(): string | number {
throw new Error("Method not implemented.");
}
override get b(): this {
throw new Error("Method not implemented.");
}
override get c(): A {
throw new Error("Method not implemented.");
}
override set d(arg: string | number) {
throw new Error("Method not implemented.");
}
override set e(arg: this) {
throw new Error("Method not implemented.");
}
override set f(arg: A) {
throw new Error("Method not implemented.");
}
override get g(): string {
throw new Error("Method not implemented.");
}
override set g(newName: string) {
throw new Error("Method not implemented.");
}
}`
});
|