=== tests/cases/conformance/types/typeParameters/typeArgumentLists/constraintSatisfactionWithEmptyObject.ts === // valid uses of a basic object constraint, no errors expected // Object constraint function foo(x: T) { } >foo : (x: T) => void >T : T >Object : Object >x : T >T : T var r = foo({}); >r : void >foo({}) : void >foo : (x: T) => void >{} : {} var a = {}; >a : {} >{} : {} var r = foo({}); >r : void >foo({}) : void >foo : (x: T) => void >{} : {} class C { >C : C >T : T >Object : Object constructor(public x: T) { } >x : T >T : T } var r2 = new C({}); >r2 : C<{}> >new C({}) : C<{}> >C : typeof C >{} : {} interface I { >I : I >T : T >Object : Object x: T; >x : T >T : T } var i: I<{}>; >i : I<{}> >I : I // {} constraint function foo2(x: T) { } >foo2 : (x: T) => void >T : T >x : T >T : T var r = foo2({}); >r : void >foo2({}) : void >foo2 : (x: T) => void >{} : {} var a = {}; >a : {} >{} : {} var r = foo2({}); >r : void >foo2({}) : void >foo2 : (x: T) => void >{} : {} class C2 { >C2 : C2 >T : T constructor(public x: T) { } >x : T >T : T } var r2 = new C2({}); >r2 : C<{}> >new C2({}) : C2<{}> >C2 : typeof C2 >{} : {} interface I2 { >I2 : I2 >T : T x: T; >x : T >T : T } var i2: I2<{}>; >i2 : I2<{}> >I2 : I2