=== tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts === // Error for construct signature overloads to differ only by return type class C { >C : C constructor(x: number) { } >x : number } class C2 { >C2 : C2 >T : T constructor(x: T, y?: string) { } >x : T >T : T >y : string } interface I { >I : I new(x: number, y: string): C; >x : number >y : string >C : C new(x: number, y: string): C2; // error >x : number >y : string >C2 : C2 } interface I2 { >I2 : I2 >T : T new (x: T, y: string): C2; >x : T >T : T >y : string >C2 : C2 new (x: T, y: string): C; // error >x : T >T : T >y : string >C : C new (x: T, y: string): C2; >T : T >x : T >T : T >y : string >C2 : C2 >T : T new (x: T, y: string): C; // error >T : T >x : T >T : T >y : string >C : C } var a: { >a : { new (x: number, y: string): C2; new (x: number, y: string): C; } new (x: number, y: string): C2; >x : number >y : string >C2 : C2 new (x: number, y: string): C; // error >x : number >y : string >C : C } var b: { >b : { new (x: T, y: string): C2; new (x: T, y: string): C; } new (x: T, y: string): C2; >T : T >x : T >T : T >y : string >C2 : C2 >T : T new (x: T, y: string): C; // error >T : T >x : T >T : T >y : string >C : C }