File: nondistributiveConditionalTypeInfer.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 459,140 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (35 lines) | stat: -rw-r--r-- 708 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
=== tests/cases/compiler/nondistributiveConditionalTypeInfer.ts ===
type _R<T> = [T] extends [{ _R: (_: infer R) => void }] ? R : never;
>_R : _R<T>
>_R : (_: infer R) => void
>_ : R

type _E<T> = [T] extends [{ _E: () => infer E }] ? E : never;
>_E : _E<T>
>_E : () => infer E

type _A<T> = [T] extends [{ _A: () => infer A }] ? A : never;
>_A : _A<T>
>_A : () => infer A

interface Sync<R, E, A> {
  _R: (_: R) => void;
>_R : (_: R) => void
>_ : R

  _E: () => E;
>_E : () => E

  _A: () => A;
>_A : () => A
}

type R = _R<Sync<number, string, void>>;
>R : number

type E = _E<Sync<number, string, void>>;
>E : string

type A = _A<Sync<number, string, void>>;
>A : void