File: formattingTypeInfer.ts

package info (click to toggle)
node-typescript 4.8.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 523,068 kB
  • sloc: javascript: 1,735,777; makefile: 7; sh: 1
file content (45 lines) | stat: -rw-r--r-- 1,834 bytes parent folder | download | duplicates (5)
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
36
37
38
39
40
41
42
43
44
45
/// <reference path='fourslash.ts'/>

////
/////*L1*/type C<T> = T extends Array<infer U> ? U : never;
////
/////*L2*/  type   C  <  T  >   =   T   extends   Array   <   infer     U  >  ?   U   :   never  ; 
////
/////*L3*/type C<T> = T extends Array<infer U> ? U : T;
////
/////*L4*/  type   C  <  T  >   =   T   extends   Array   <   infer     U  >  ?   U   :   T  ;  
////
/////*L5*/type Foo<T> = T extends { a: infer U, b: infer U } ? U : never;
////
/////*L6*/  type   Foo  <  T  > = T   extends   {   a  :   infer   U  ,   b  :   infer   U   }   ?   U   :   never  ;  
////
/////*L7*/type Bar<T> = T extends { a: (x: infer U) => void, b: (x: infer U) => void } ? U : never;
////
/////*L8*/  type   Bar  <  T  >   =   T   extends   {   a  :   (x  :  infer  U  ) =>   void  ,   b  :   (x  :   infer   U  )   =>   void   }    ?   U   :   never  ;
////

format.document();

goTo.marker("L1");
verify.currentLineContentIs("type C<T> = T extends Array<infer U> ? U : never;");

goTo.marker("L2");
verify.currentLineContentIs("type C<T> = T extends Array<infer U> ? U : never;");

goTo.marker("L3");
verify.currentLineContentIs("type C<T> = T extends Array<infer U> ? U : T;");

goTo.marker("L4");
verify.currentLineContentIs("type C<T> = T extends Array<infer U> ? U : T;");

goTo.marker("L5");
verify.currentLineContentIs("type Foo<T> = T extends { a: infer U, b: infer U } ? U : never;");

goTo.marker("L6");
verify.currentLineContentIs("type Foo<T> = T extends { a: infer U, b: infer U } ? U : never;");

goTo.marker("L7");
verify.currentLineContentIs("type Bar<T> = T extends { a: (x: infer U) => void, b: (x: infer U) => void } ? U : never;");

goTo.marker("L8");
verify.currentLineContentIs("type Bar<T> = T extends { a: (x: infer U) => void, b: (x: infer U) => void } ? U : never;");