class A { constructor(x) { var y = x; var z = x; } f(x: T, y: U) { x = y; y = x; } } class B extends A { g(x: T) { var a: Date = x; var b = x; var c = new Date(); var d = new Date(); var e = new Date(); } } var b: B; var c: A = >b;