Closed
Description
tsc: 2.4.2
class X { }
declare interface ConstructorAnyArgs<TClass> {
new (...args: any[]): TClass
}
function foo(): ConstructorAnyArgs<X> { return }
function boo(): ConstructorAnyArgs<X> & { superclass: any } { return }
let Y = foo()
let y = new Y()
let Z = boo()
let z = new Z() // Cannot use 'new' with an expression whose type lacks a call or construct signature.