/
class-name_feature.test
125 lines (114 loc) · 2.41 KB
/
class-name_feature.test
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
interface Dictionary<T> {
[key: string]: T;
}
interface Foo extends Dictionary<number> {}
class Bar<T> extends Baz<T> implements FooBar<number, T | null> {}
type Record<K extends keyof any, T> = {
[P in K]: T;
}
type Diff<T, U> = T extends U ? never : T;
----------------------------------------------------
[
["keyword", "interface"],
["class-name", [
"Dictionary",
["operator", "<"],
["constant", "T"],
["operator", ">"]
]],
["punctuation", "{"],
["punctuation", "["],
"key",
["operator", ":"],
["builtin", "string"],
["punctuation", "]"],
["operator", ":"],
["constant", "T"],
["punctuation", ";"],
["punctuation", "}"],
["keyword", "interface"],
["class-name", [
"Foo"
]],
["keyword", "extends"],
["class-name", [
"Dictionary",
["operator", "<"],
["builtin", "number"],
["operator", ">"]
]],
["punctuation", "{"],
["punctuation", "}"],
["keyword", "class"],
["class-name", [
"Bar",
["operator", "<"],
["constant", "T"],
["operator", ">"]
]],
["keyword", "extends"],
["class-name", [
"Baz",
["operator", "<"],
["constant", "T"],
["operator", ">"]
]],
["keyword", "implements"],
["class-name", [
"FooBar",
["operator", "<"],
["builtin", "number"],
["punctuation", ","],
["constant", "T"],
["operator", "|"],
["keyword", "null"],
["operator", ">"]
]],
["punctuation", "{"],
["punctuation", "}"],
["keyword", "type"],
["class-name", [
"Record",
["operator", "<"],
["constant", "K"],
["keyword", "extends"],
["keyword", "keyof"],
["builtin", "any"],
["punctuation", ","],
["constant", "T"],
["operator", ">"]
]],
["operator", "="],
["punctuation", "{"],
["punctuation", "["],
["constant", "P"],
["keyword", "in"],
["constant", "K"],
["punctuation", "]"],
["operator", ":"],
["constant", "T"],
["punctuation", ";"],
["punctuation", "}"],
["keyword", "type"],
["class-name", [
"Diff",
["operator", "<"],
["constant", "T"],
["punctuation", ","],
["constant", "U"],
["operator", ">"]
]],
["operator", "="],
["constant", "T"],
["keyword", "extends"],
["class-name", [
["constant", "U"]
]],
["operator", "?"],
["builtin", "never"],
["operator", ":"],
["constant", "T"],
["punctuation", ";"]
]
----------------------------------------------------
Checks for class, interface, and other type names.