class C { constructor(x); constructor(public x: string = 1) { var y = x; } } class D { constructor(x: T, y: U); constructor(x: T = 1, public y: U = x) { var z = x; } } class E { constructor(x); constructor(x: T = new Date()) { var y = x; } }