File: specialIntersectionsInMappedTypes.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 459,116 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (45 lines) | stat: -rw-r--r-- 1,161 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
=== tests/cases/compiler/specialIntersectionsInMappedTypes.ts ===
// Repro from #50683

type Alignment = (string & {}) | "left" | "center" | "right";
>Alignment : (string & {}) | "left" | "center" | "right"

type Alignments = Record<Alignment, string>;
>Alignments : { [x: string & {}]: string; left: string; center: string; right: string; }

const a: Alignments = {
>a : Alignments
>{    left: "align-left",    center: "align-center",    right: "align-right",    other: "align-other",} : { left: string; center: string; right: string; other: string; }

    left: "align-left",
>left : string
>"align-left" : "align-left"

    center: "align-center",
>center : string
>"align-center" : "align-center"

    right: "align-right",
>right : string
>"align-right" : "align-right"

    other: "align-other",
>other : string
>"align-other" : "align-other"

};

a.left.length;
>a.left.length : number
>a.left : string
>a : Alignments
>left : string
>length : number

a.other.length;  // Error expected here
>a.other.length : number
>a.other : string | undefined
>a : Alignments
>other : string | undefined
>length : number