File: genericChainedCalls.types

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 (83 lines) | stat: -rw-r--r-- 2,999 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
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
=== tests/cases/compiler/genericChainedCalls.ts ===
interface I1<T> {
    func<U>(callback: (value: T) => U): I1<T>;
>func : <U>(callback: (value: T) => U) => I1<T>
>callback : (value: T) => U
>value : T
}
 
declare var v1: I1<number>;
>v1 : I1<number>
 
var r1 = v1.func(num => num.toString()) 
>r1 : I1<number>
>v1.func(num => num.toString())            .func(str => str.length) // error, number doesn't have a length           .func(num => num.toString()) : I1<number>
>v1.func(num => num.toString())            .func(str => str.length) // error, number doesn't have a length           .func : <U>(callback: (value: number) => U) => I1<number>
>v1.func(num => num.toString())            .func(str => str.length) : I1<number>
>v1.func(num => num.toString())            .func : <U>(callback: (value: number) => U) => I1<number>
>v1.func(num => num.toString()) : I1<number>
>v1.func : <U>(callback: (value: number) => U) => I1<number>
>v1 : I1<number>
>func : <U>(callback: (value: number) => U) => I1<number>
>num => num.toString() : (num: number) => string
>num : number
>num.toString() : string
>num.toString : (radix?: number) => string
>num : number
>toString : (radix?: number) => string

           .func(str => str.length) // error, number doesn't have a length
>func : <U>(callback: (value: number) => U) => I1<number>
>str => str.length : (str: number) => any
>str : number
>str.length : any
>str : number
>length : any

           .func(num => num.toString())
>func : <U>(callback: (value: number) => U) => I1<number>
>num => num.toString() : (num: number) => string
>num : number
>num.toString() : string
>num.toString : (radix?: number) => string
>num : number
>toString : (radix?: number) => string
 
var s1 = v1.func(num => num.toString()) 
>s1 : I1<number>
>v1.func(num => num.toString()) : I1<number>
>v1.func : <U>(callback: (value: number) => U) => I1<number>
>v1 : I1<number>
>func : <U>(callback: (value: number) => U) => I1<number>
>num => num.toString() : (num: number) => string
>num : number
>num.toString() : string
>num.toString : (radix?: number) => string
>num : number
>toString : (radix?: number) => string

var s2 = s1.func(str => str.length) // should also error
>s2 : I1<number>
>s1.func(str => str.length) : I1<number>
>s1.func : <U>(callback: (value: number) => U) => I1<number>
>s1 : I1<number>
>func : <U>(callback: (value: number) => U) => I1<number>
>str => str.length : (str: number) => any
>str : number
>str.length : any
>str : number
>length : any

var s3 = s2.func(num => num.toString())
>s3 : I1<number>
>s2.func(num => num.toString()) : I1<number>
>s2.func : <U>(callback: (value: number) => U) => I1<number>
>s2 : I1<number>
>func : <U>(callback: (value: number) => U) => I1<number>
>num => num.toString() : (num: number) => string
>num : number
>num.toString() : string
>num.toString : (radix?: number) => string
>num : number
>toString : (radix?: number) => string