swc/crates/swc_ecma_parser/tests/tsc/derivedClassWithoutExplicitConstructor2.ts

33 lines
698 B
TypeScript

class Base {
a = 1;
constructor(x: number, y?: number, z?: number);
constructor(x: number, y?: number);
constructor(x: number) { this.a = x; }
}
class Derived extends Base {
x = 1
y = 'hello';
}
var r = new Derived(); // error
var r2 = new Derived(1);
var r3 = new Derived(1, 2);
var r4 = new Derived(1, 2, 3);
class Base2<T> {
a: T;
constructor(x: T, y?: T, z?: T);
constructor(x: T, y?: T);
constructor(x: T) { this.a = x; }
}
class D<T extends Date> extends Base2<T> {
x = 2
y: T = null;
}
var d = new D(); // error
var d2 = new D(new Date()); // ok
var d3 = new D(new Date(), new Date());
var d4 = new D(new Date(), new Date(), new Date());