TypeScript/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractSuperCalls.ts
2015-06-23 10:33:41 -07:00

26 lines
512 B
TypeScript

class A {
foo() { return 1; }
}
abstract class B extends A {
abstract foo();
bar() { super.foo(); }
baz() { return this.foo; }
}
class C extends B {
foo() { return 2; }
qux() { return super.foo() || super.foo; } // 2 errors, foo is abstract
norf() { return super.bar(); }
}
class AA {
foo() { return 1; }
bar() { return this.foo(); }
}
abstract class BB extends AA {
abstract foo();
// inherits bar. But BB is abstract, so this is OK.
}