File: genericFunctionsWithOptionalParameters2.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 (44 lines) | stat: -rw-r--r-- 1,343 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
=== tests/cases/compiler/genericFunctionsWithOptionalParameters2.ts ===
interface Utils {
   fold<T, S>(c: Array<T>, folder?: (s: S, t: T) => T, init?: S): T;
>fold : <T, S>(c: T[], folder?: (s: S, t: T) => T, init?: S) => T
>c : T[]
>folder : (s: S, t: T) => T
>s : S
>t : T
>init : S
}

var utils: Utils;
>utils : Utils

utils.fold(); // error
>utils.fold() : any
>utils.fold : <T, S>(c: T[], folder?: (s: S, t: T) => T, init?: S) => T
>utils : Utils
>fold : <T, S>(c: T[], folder?: (s: S, t: T) => T, init?: S) => T

utils.fold(null); // no error
>utils.fold(null) : {}
>utils.fold : <T, S>(c: T[], folder?: (s: S, t: T) => T, init?: S) => T
>utils : Utils
>fold : <T, S>(c: T[], folder?: (s: S, t: T) => T, init?: S) => T
>null : null

utils.fold(null, null); // no error
>utils.fold(null, null) : {}
>utils.fold : <T, S>(c: T[], folder?: (s: S, t: T) => T, init?: S) => T
>utils : Utils
>fold : <T, S>(c: T[], folder?: (s: S, t: T) => T, init?: S) => T
>null : null
>null : null

utils.fold(null, null, null); // error: Unable to invoke type with no call signatures
>utils.fold(null, null, null) : {}
>utils.fold : <T, S>(c: T[], folder?: (s: S, t: T) => T, init?: S) => T
>utils : Utils
>fold : <T, S>(c: T[], folder?: (s: S, t: T) => T, init?: S) => T
>null : null
>null : null
>null : null