=== tests/cases/conformance/types/conditional/variance.ts === // Test cases for parameter variances affected by conditional types. // Repro from #30047 interface Foo { prop: T extends unknown ? true : false; >prop : T extends unknown ? true : false >true : true >false : false } const foo = { prop: true } as const; >foo : { readonly prop: true; } >{ prop: true } as const : { readonly prop: true; } >{ prop: true } : { readonly prop: true; } >prop : true >true : true const x: Foo<1> = foo; >x : Foo<1> >foo : { readonly prop: true; } const y: Foo = foo; >y : Foo >foo : { readonly prop: true; } const z: Foo = x; >z : Foo >x : Foo<1> // Repro from #30118 class Bar { >Bar : Bar private static instance: Bar[] = []; >instance : Bar[] >[] : never[] cast(_name: ([T] extends [string] ? string : string)) { } >cast : (_name: ([T] extends [string] ? string : string)) => void >_name : [T] extends [string] ? string : string pushThis() { >pushThis : () => void Bar.instance.push(this); >Bar.instance.push(this) : number >Bar.instance.push : (...items: Bar[]) => number >Bar.instance : Bar[] >Bar : typeof Bar >instance : Bar[] >push : (...items: Bar[]) => number >this : this } }