1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
=== tests/cases/compiler/conditionalTypeSimplification.ts ===
// Repro from #30794
interface AbstractSchema<S, V> {
m1<T> (v: T): SchemaType<S, Exclude<V, T>>;
>m1 : <T>(v: T) => SchemaType<S, Exclude<V, T>>
>v : T
m2<T> (v: T): SchemaType<S, T>;
>m2 : <T>(v: T) => SchemaType<S, T>
>v : T
}
type SchemaType<S, V> = S extends object ? AnySchema<V> : never;
>SchemaType : SchemaType<S, V>
interface AnySchema<V> extends AnySchemaType<AnySchema<undefined>, V> { }
interface AnySchemaType<S extends AbstractSchema<any, any>, V> extends AbstractSchema<S, V> { }
|