File: recursiveFunctionTypes.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 (88 lines) | stat: -rw-r--r-- 4,623 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
tests/cases/compiler/recursiveFunctionTypes.ts(1,28): error TS2322: Type '1' is not assignable to type '() => typeof fn'.
tests/cases/compiler/recursiveFunctionTypes.ts(3,5): error TS2322: Type '() => typeof fn' is not assignable to type 'number'.
tests/cases/compiler/recursiveFunctionTypes.ts(4,5): error TS2322: Type '() => typeof fn' is not assignable to type '() => number'.
  Type '() => typeof fn' is not assignable to type 'number'.
tests/cases/compiler/recursiveFunctionTypes.ts(11,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value.
tests/cases/compiler/recursiveFunctionTypes.ts(12,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value.
tests/cases/compiler/recursiveFunctionTypes.ts(17,5): error TS2322: Type '() => I<typeof f3>' is not assignable to type 'number'.
tests/cases/compiler/recursiveFunctionTypes.ts(22,5): error TS2345: Argument of type '3' is not assignable to parameter of type '(t: typeof g) => void'.
tests/cases/compiler/recursiveFunctionTypes.ts(25,1): error TS2322: Type '3' is not assignable to type '() => any'.
tests/cases/compiler/recursiveFunctionTypes.ts(30,10): error TS2394: Overload signature is not compatible with function implementation.
tests/cases/compiler/recursiveFunctionTypes.ts(33,1): error TS2554: Expected 0-1 arguments, but got 2.
tests/cases/compiler/recursiveFunctionTypes.ts(34,4): error TS2345: Argument of type '""' is not assignable to parameter of type '{ (): typeof f6; (a: typeof f6): () => number; }'.
tests/cases/compiler/recursiveFunctionTypes.ts(42,1): error TS2554: Expected 0-1 arguments, but got 2.
tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of type '""' is not assignable to parameter of type '{ (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }'.


==== tests/cases/compiler/recursiveFunctionTypes.ts (13 errors) ====
    function fn(): typeof fn { return 1; }
                               ~~~~~~~~~
!!! error TS2322: Type '1' is not assignable to type '() => typeof fn'.
    
    var x: number = fn; // error
        ~
!!! error TS2322: Type '() => typeof fn' is not assignable to type 'number'.
    var y: () => number = fn; // ok
        ~
!!! error TS2322: Type '() => typeof fn' is not assignable to type '() => number'.
!!! error TS2322:   Type '() => typeof fn' is not assignable to type 'number'.
    
    var f: () => typeof g;
    var g: () => typeof f;
    
    function f1(d: typeof f1) { }
    
    function f2(): typeof g2 { } 
                   ~~~~~~~~~
!!! error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value.
    function g2(): typeof f2 { } 
                   ~~~~~~~~~
!!! error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value.
    
    interface I<T> { }
    function f3(): I<typeof f3> { return f3; }
    
    var a: number = f3; // error
        ~
!!! error TS2322: Type '() => I<typeof f3>' is not assignable to type 'number'.
    
    class C {
         static g(t: typeof C.g){ }
    }
    C.g(3); // error
        ~
!!! error TS2345: Argument of type '3' is not assignable to parameter of type '(t: typeof g) => void'.
    
    var f4: () => typeof f4;
    f4 = 3; // error
    ~~
!!! error TS2322: Type '3' is not assignable to type '() => any'.
    
    function f5() { return f5; }
    
    function f6(): typeof f6;
    function f6(a: typeof f6): () => number;
             ~~
!!! error TS2394: Overload signature is not compatible with function implementation.
    function f6(a?: any) { return f6; }
    
    f6("", 3); // error (arity mismatch)
    ~~~~~~~~~
!!! error TS2554: Expected 0-1 arguments, but got 2.
    f6(""); // ok (function takes an any param)
       ~~
!!! error TS2345: Argument of type '""' is not assignable to parameter of type '{ (): typeof f6; (a: typeof f6): () => number; }'.
    f6(); // ok
    
    declare function f7(): typeof f7;
    declare function f7(a: typeof f7): () => number;
    declare function f7(a: number): number;
    declare function f7(a?: typeof f7): typeof f7;
    
    f7("", 3); // error (arity mismatch)
    ~~~~~~~~~
!!! error TS2554: Expected 0-1 arguments, but got 2.
    f7(""); // ok (function takes an any param)
       ~~
!!! error TS2345: Argument of type '""' is not assignable to parameter of type '{ (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }'.
    f7(); // ok