File: defaultArgsInFunctionExpressions.errors.txt

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (58 lines) | stat: -rw-r--r-- 3,534 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
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
53
54
55
56
57
58
tests/cases/compiler/defaultArgsInFunctionExpressions.ts(4,19): error TS2345: Argument of type '""' is not assignable to parameter of type 'number'.
tests/cases/compiler/defaultArgsInFunctionExpressions.ts(5,1): error TS2322: Type 'number' is not assignable to type 'string'.
tests/cases/compiler/defaultArgsInFunctionExpressions.ts(8,20): error TS2322: Type '3' is not assignable to type 'string'.
tests/cases/compiler/defaultArgsInFunctionExpressions.ts(11,1): error TS2322: Type 'string' is not assignable to type 'number'.
tests/cases/compiler/defaultArgsInFunctionExpressions.ts(14,51): error TS2352: Conversion of type 'string' to type 'number' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
tests/cases/compiler/defaultArgsInFunctionExpressions.ts(17,41): error TS2322: Type '""' is not assignable to type 'number'.
tests/cases/compiler/defaultArgsInFunctionExpressions.ts(20,62): error TS2352: Conversion of type 'string' to type 'number' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
tests/cases/compiler/defaultArgsInFunctionExpressions.ts(28,15): error TS2708: Cannot use namespace 'T' as a value.


==== tests/cases/compiler/defaultArgsInFunctionExpressions.ts (8 errors) ====
    var f = function (a = 3) { return a; }; // Type should be (a?: number) => number
    var n: number = f(4);
    n = f();
    var s: string = f('');
                      ~~
!!! error TS2345: Argument of type '""' is not assignable to parameter of type 'number'.
    s = f();
    ~
!!! error TS2322: Type 'number' is not assignable to type 'string'.
    
    // Type check the default argument with the type annotation
    var f2 = function (a: string = 3) { return a; }; // Should error, but be of type (a: string) => string;
                       ~~~~~~~~~~~~~
!!! error TS2322: Type '3' is not assignable to type 'string'.
    s = f2('');
    s = f2();
    n = f2();
    ~
!!! error TS2322: Type 'string' is not assignable to type 'number'.
    
    // Contextually type the default arg with the type annotation
    var f3 = function (a: (s: string) => any = (s) => <number>s) { };
                                                      ~~~~~~~~~
!!! error TS2352: Conversion of type 'string' to type 'number' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
    
    // Type check using the function's contextual type
    var f4: (a: number) => void = function (a = "") { };
                                            ~~~~~~
!!! error TS2322: Type '""' is not assignable to type 'number'.
    
    // Contextually type the default arg using the function's contextual type
    var f5: (a: (s: string) => any) => void = function (a = s => <number>s) { };
                                                                 ~~~~~~~~~
!!! error TS2352: Conversion of type 'string' to type 'number' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
    
    // Instantiated module
    module T { }
    module U {
        export var x;
    }
    
    var f6 = (t = T) => { };
                  ~
!!! error TS2708: Cannot use namespace 'T' as a value.
    var f7 = (t = U) => { return t; };
    
    f7().x;