File: conditionalTypeSimplification.types

package info (click to toggle)
node-typescript 5.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 497,488 kB
  • sloc: javascript: 2,107,274; makefile: 6; sh: 1
file content (21 lines) | stat: -rw-r--r-- 634 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//// [tests/cases/compiler/conditionalTypeSimplification.ts] ////

=== 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> { }