File: mappedTypeIndexedAccess.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 459,140 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (60 lines) | stat: -rw-r--r-- 975 bytes parent folder | download | duplicates (3)
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
=== tests/cases/compiler/mappedTypeIndexedAccess.ts ===
// Repro from #15756

type Pairs<T> = {
>Pairs : Pairs<T>

    [TKey in keyof T]: {
        key: TKey;
>key : TKey

        value: T[TKey];
>value : T[TKey]

    };
};

type Pair<T> = Pairs<T>[keyof T];
>Pair : Pair<T>

type FooBar = {
>FooBar : { foo: string; bar: number; }

    foo: string;
>foo : string

    bar: number;
>bar : number

};

// Error expected here
let pair1: Pair<FooBar> = {
>pair1 : Pair<FooBar>
>{    key: "foo",    value: 3} : { key: "foo"; value: number; }

    key: "foo",
>key : "foo"
>"foo" : "foo"

    value: 3
>value : number
>3 : 3

};

// Error expected here
let pair2: Pairs<FooBar>[keyof FooBar] = {
>pair2 : { key: "foo"; value: string; } | { key: "bar"; value: number; }
>{    key: "foo",    value: 3} : { key: "foo"; value: number; }

    key: "foo",
>key : "foo"
>"foo" : "foo"

    value: 3
>value : number
>3 : 3

};