// basic uses of function literals with constructor overloads class C { constructor(x: string); constructor(x: number); constructor(x) { } } class D { constructor(x: string); constructor(x: number); constructor(x) { } } var f: { new(x: string): C; new(x: number): C; } = C; var f2: { new(x: string): C; new(x: number): C; } = C; var f3: { new(x: string): D; new(x: number): D; } = D;