-
Notifications
You must be signed in to change notification settings - Fork 12.8k
/
Copy pathintersectionReductionGenericStringLikeType.symbols
77 lines (55 loc) · 3.21 KB
/
intersectionReductionGenericStringLikeType.symbols
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
67
68
69
70
71
72
73
74
75
76
77
//// [tests/cases/compiler/intersectionReductionGenericStringLikeType.ts] ////
=== intersectionReductionGenericStringLikeType.ts ===
// https://github.com/microsoft/TypeScript/issues/57736
type obj = {
>obj : Symbol(obj, Decl(intersectionReductionGenericStringLikeType.ts, 0, 0))
foo: 1;
>foo : Symbol(foo, Decl(intersectionReductionGenericStringLikeType.ts, 2, 12))
bar: 2;
>bar : Symbol(bar, Decl(intersectionReductionGenericStringLikeType.ts, 3, 11))
};
type keyContaining1<
>keyContaining1 : Symbol(keyContaining1, Decl(intersectionReductionGenericStringLikeType.ts, 5, 2))
str extends string,
>str : Symbol(str, Decl(intersectionReductionGenericStringLikeType.ts, 7, 20))
keys extends keyof obj = keyof obj,
>keys : Symbol(keys, Decl(intersectionReductionGenericStringLikeType.ts, 8, 23))
>obj : Symbol(obj, Decl(intersectionReductionGenericStringLikeType.ts, 0, 0))
>obj : Symbol(obj, Decl(intersectionReductionGenericStringLikeType.ts, 0, 0))
> = keys extends infer key extends keyof obj
>keys : Symbol(keys, Decl(intersectionReductionGenericStringLikeType.ts, 8, 23))
>key : Symbol(key, Decl(intersectionReductionGenericStringLikeType.ts, 10, 22))
>obj : Symbol(obj, Decl(intersectionReductionGenericStringLikeType.ts, 0, 0))
? key extends `${string}${str}${string}`
>key : Symbol(key, Decl(intersectionReductionGenericStringLikeType.ts, 10, 22))
>str : Symbol(str, Decl(intersectionReductionGenericStringLikeType.ts, 7, 20))
? obj[key]
>obj : Symbol(obj, Decl(intersectionReductionGenericStringLikeType.ts, 0, 0))
>key : Symbol(key, Decl(intersectionReductionGenericStringLikeType.ts, 10, 22))
: never
: never;
type _1 = keyContaining1<"foo">; // 1
>_1 : Symbol(_1, Decl(intersectionReductionGenericStringLikeType.ts, 14, 12))
>keyContaining1 : Symbol(keyContaining1, Decl(intersectionReductionGenericStringLikeType.ts, 5, 2))
type keyContaining2<
>keyContaining2 : Symbol(keyContaining2, Decl(intersectionReductionGenericStringLikeType.ts, 16, 32))
str extends string,
>str : Symbol(str, Decl(intersectionReductionGenericStringLikeType.ts, 18, 20))
keys extends keyof obj = keyof obj,
>keys : Symbol(keys, Decl(intersectionReductionGenericStringLikeType.ts, 19, 23))
>obj : Symbol(obj, Decl(intersectionReductionGenericStringLikeType.ts, 0, 0))
>obj : Symbol(obj, Decl(intersectionReductionGenericStringLikeType.ts, 0, 0))
> = keys extends keys
>keys : Symbol(keys, Decl(intersectionReductionGenericStringLikeType.ts, 19, 23))
>keys : Symbol(keys, Decl(intersectionReductionGenericStringLikeType.ts, 19, 23))
? keys extends `${string}${str}${string}`
>keys : Symbol(keys, Decl(intersectionReductionGenericStringLikeType.ts, 19, 23))
>str : Symbol(str, Decl(intersectionReductionGenericStringLikeType.ts, 18, 20))
? obj[keys]
>obj : Symbol(obj, Decl(intersectionReductionGenericStringLikeType.ts, 0, 0))
>keys : Symbol(keys, Decl(intersectionReductionGenericStringLikeType.ts, 19, 23))
: never
: never;
type _2 = keyContaining2<"foo">; // 1
>_2 : Symbol(_2, Decl(intersectionReductionGenericStringLikeType.ts, 25, 12))
>keyContaining2 : Symbol(keyContaining2, Decl(intersectionReductionGenericStringLikeType.ts, 16, 32))