File: circularContextualMappedType.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 (50 lines) | stat: -rw-r--r-- 1,405 bytes parent folder | download | duplicates (4)
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
=== tests/cases/compiler/circularContextualMappedType.ts ===
type Func<T> = () => T;
>Func : Func<T>

type Mapped<T> = { [K in keyof T]: Func<T[K]> };
>Mapped : Mapped<T>

declare function reproduce(options: number): void;
>reproduce : { (options: number): void; <T>(options: Mapped<T>): T; }
>options : number

declare function reproduce<T>(options: Mapped<T>): T
>reproduce : { (options: number): void; <T>(options: Mapped<T>): T; }
>options : Mapped<T>

reproduce({
>reproduce({  name:   () => { return 123 }}) : { name: number; }
>reproduce : { (options: number): void; <T>(options: Mapped<T>): T; }
>{  name:   () => { return 123 }} : { name: () => number; }

  name:   () => { return 123 }
>name : () => number
>() => { return 123 } : () => number
>123 : 123

});

reproduce({
>reproduce({  name() { return 123 }}) : { name: number; }
>reproduce : { (options: number): void; <T>(options: Mapped<T>): T; }
>{  name() { return 123 }} : { name(): number; }

  name() { return 123 }
>name : () => number
>123 : 123

});

reproduce({
>reproduce({  name: function () { return 123 }}) : { name: number; }
>reproduce : { (options: number): void; <T>(options: Mapped<T>): T; }
>{  name: function () { return 123 }} : { name: () => number; }

  name: function () { return 123 }
>name : () => number
>function () { return 123 } : () => number
>123 : 123

});