File: circularTypeofWithVarOrFunc.types

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (66 lines) | stat: -rw-r--r-- 1,242 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
=== tests/cases/conformance/types/specifyingTypes/typeQueries/circularTypeofWithVarOrFunc.ts ===
type typeAlias1 = typeof varOfAliasedType1;
>typeAlias1 : any
>varOfAliasedType1 : any

var varOfAliasedType1: typeAlias1;
>varOfAliasedType1 : any

var varOfAliasedType2: typeAlias2;
>varOfAliasedType2 : any

type typeAlias2 = typeof varOfAliasedType2;
>typeAlias2 : any
>varOfAliasedType2 : any

function func(): typeAlias3 { return null; }
>func : () => any
>null : null

var varOfAliasedType3 = func();
>varOfAliasedType3 : any
>func() : any
>func : () => any

type typeAlias3 = typeof varOfAliasedType3;
>typeAlias3 : any
>varOfAliasedType3 : any

// Repro from #26104

interface Input {
  a: number;
>a : number

  b: number;
>b : number
}

type R = ReturnType<typeof mul>;
>R : any
>mul : (input: Input) => any

function mul(input: Input): R {
>mul : (input: Input) => any
>input : Input

  return input.a * input.b;
>input.a * input.b : number
>input.a : number
>input : Input
>a : number
>input.b : number
>input : Input
>b : number
}

// Repro from #26104

type R2 = ReturnType<typeof f>;
>R2 : any
>f : () => any

function f(): R2 { return 0; }
>f : () => any
>0 : 0