Skip to content

Commit a732ff6

Browse files
lankaapuramhegazy
authored andcommitted
Add type infer formatting (microsoft#21850)
* add test for type infer formatting * Fix type infer formatting * update test to use condtional
1 parent d9fefd4 commit a732ff6

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

src/services/formatting/rules.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ namespace ts.formatting {
162162
SyntaxKind.TypeKeyword,
163163
SyntaxKind.FromKeyword,
164164
SyntaxKind.KeyOfKeyword,
165+
SyntaxKind.InferKeyword,
165166
],
166167
anyToken,
167168
[isNonJsxSameLineTokenContext],
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/// <reference path='fourslash.ts'/>
2+
3+
////
4+
/////*L1*/type C<T> = T extends Array<infer U> ? U : never;
5+
////
6+
/////*L2*/ type C < T > = T extends Array < infer U > ? U : never ;
7+
////
8+
/////*L3*/type C<T> = T extends Array<infer U> ? U : T;
9+
////
10+
/////*L4*/ type C < T > = T extends Array < infer U > ? U : T ;
11+
////
12+
/////*L5*/type Foo<T> = T extends { a: infer U, b: infer U } ? U : never;
13+
////
14+
/////*L6*/ type Foo < T > = T extends { a : infer U , b : infer U } ? U : never ;
15+
////
16+
/////*L7*/type Bar<T> = T extends { a: (x: infer U) => void, b: (x: infer U) => void } ? U : never;
17+
////
18+
/////*L8*/ type Bar < T > = T extends { a : (x : infer U ) => void , b : (x : infer U ) => void } ? U : never ;
19+
////
20+
21+
format.document();
22+
23+
goTo.marker("L1");
24+
verify.currentLineContentIs("type C<T> = T extends Array<infer U> ? U : never;");
25+
26+
goTo.marker("L2");
27+
verify.currentLineContentIs("type C<T> = T extends Array<infer U> ? U : never;");
28+
29+
goTo.marker("L3");
30+
verify.currentLineContentIs("type C<T> = T extends Array<infer U> ? U : T;");
31+
32+
goTo.marker("L4");
33+
verify.currentLineContentIs("type C<T> = T extends Array<infer U> ? U : T;");
34+
35+
goTo.marker("L5");
36+
verify.currentLineContentIs("type Foo<T> = T extends { a: infer U, b: infer U } ? U : never;");
37+
38+
goTo.marker("L6");
39+
verify.currentLineContentIs("type Foo<T> = T extends { a: infer U, b: infer U } ? U : never;");
40+
41+
goTo.marker("L7");
42+
verify.currentLineContentIs("type Bar<T> = T extends { a: (x: infer U) => void, b: (x: infer U) => void } ? U : never;");
43+
44+
goTo.marker("L8");
45+
verify.currentLineContentIs("type Bar<T> = T extends { a: (x: infer U) => void, b: (x: infer U) => void } ? U : never;");

0 commit comments

Comments
 (0)