File: genericsFormatting.ts

package info (click to toggle)
node-typescript 4.1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 396,552 kB
  • sloc: javascript: 1,444,377; makefile: 7; sh: 3
file content (52 lines) | stat: -rw-r--r-- 1,909 bytes parent folder | download | duplicates (6)
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
46
47
48
49
50
51
52
/// <reference path='fourslash.ts' />

/////*inClassDeclaration*/class Foo   <    T1   ,  T2    >  {
/////*inMethodDeclaration*/    public method    <   T3,    T4   >   ( a: T1,   b: Array    < T4 > ):   Map < T1  ,   T2, Array < T3    >    > {
////    }
////}
/////*typeArguments*/var foo = new Foo   <  number, Array <   number  >   >  (  );
/////*typeArgumentsWithTypeLiterals*/foo = new Foo  <  {   bar  :  number }, Array   < {   baz :  string   }  >  >  (  );
////
////interface IFoo {
/////*inNewSignature*/new < T  > ( a: T);
/////*inOptionalMethodSignature*/op?< T , M > (a: T, b : M );
////}
////
////foo()<number, string, T >();
////(a + b)<number, string, T >();
////
/////*inFunctionDeclaration*/function bar <T> () {
/////*inClassExpression*/    return class  <  T2 > {
////    }
////}
/////*expressionWithTypeArguments*/class A < T > extends bar <  T >( )  <  T > {
////}


format.document();

goTo.marker("inClassDeclaration");
verify.currentLineContentIs("class Foo<T1, T2>  {");

goTo.marker("inMethodDeclaration");
verify.currentLineContentIs("    public method<T3, T4>(a: T1, b: Array<T4>): Map<T1, T2, Array<T3>> {");

goTo.marker("typeArguments");
verify.currentLineContentIs("var foo = new Foo<number, Array<number>>();");
goTo.marker("typeArgumentsWithTypeLiterals");
verify.currentLineContentIs("foo = new Foo<{ bar: number }, Array<{ baz: string }>>();");

goTo.marker("inNewSignature");
verify.currentLineContentIs("    new <T>(a: T);");

goTo.marker("inOptionalMethodSignature");
verify.currentLineContentIs("    op?<T, M>(a: T, b: M);");

goTo.marker("inFunctionDeclaration");
verify.currentLineContentIs("function bar<T>() {");

goTo.marker("inClassExpression");
verify.currentLineContentIs("    return class <T2> {");

goTo.marker("expressionWithTypeArguments");
verify.currentLineContentIs("class A<T> extends bar<T>()<T> {");