/
output.json
215 lines (215 loc) 路 10.3 KB
/
output.json
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
{
"type": "File",
"start":0,"end":144,"loc":{"start":{"line":1,"column":0,"index":0},"end":{"line":11,"column":1,"index":144}},
"program": {
"type": "Program",
"start":0,"end":144,"loc":{"start":{"line":1,"column":0,"index":0},"end":{"line":11,"column":1,"index":144}},
"sourceType": "module",
"interpreter": null,
"body": [
{
"type": "TSTypeAliasDeclaration",
"start":0,"end":37,"loc":{"start":{"line":1,"column":0,"index":0},"end":{"line":3,"column":1,"index":37}},
"id": {
"type": "Identifier",
"start":5,"end":14,"loc":{"start":{"line":1,"column":5,"index":5},"end":{"line":1,"column":14,"index":14},"identifierName":"Covariant"},
"name": "Covariant"
},
"typeParameters": {
"type": "TSTypeParameterDeclaration",
"start":14,"end":21,"loc":{"start":{"line":1,"column":14,"index":14},"end":{"line":1,"column":21,"index":21}},
"params": [
{
"type": "TSTypeParameter",
"start":15,"end":20,"loc":{"start":{"line":1,"column":15,"index":15},"end":{"line":1,"column":20,"index":20}},
"out": true,
"name": "T"
}
]
},
"typeAnnotation": {
"type": "TSTypeLiteral",
"start":24,"end":37,"loc":{"start":{"line":1,"column":24,"index":24},"end":{"line":3,"column":1,"index":37}},
"members": [
{
"type": "TSPropertySignature",
"start":30,"end":35,"loc":{"start":{"line":2,"column":4,"index":30},"end":{"line":2,"column":9,"index":35}},
"key": {
"type": "Identifier",
"start":30,"end":31,"loc":{"start":{"line":2,"column":4,"index":30},"end":{"line":2,"column":5,"index":31},"identifierName":"x"},
"name": "x"
},
"computed": false,
"typeAnnotation": {
"type": "TSTypeAnnotation",
"start":31,"end":34,"loc":{"start":{"line":2,"column":5,"index":31},"end":{"line":2,"column":8,"index":34}},
"typeAnnotation": {
"type": "TSTypeReference",
"start":33,"end":34,"loc":{"start":{"line":2,"column":7,"index":33},"end":{"line":2,"column":8,"index":34}},
"typeName": {
"type": "Identifier",
"start":33,"end":34,"loc":{"start":{"line":2,"column":7,"index":33},"end":{"line":2,"column":8,"index":34},"identifierName":"T"},
"name": "T"
}
}
}
}
]
}
},
{
"type": "TSTypeAliasDeclaration",
"start":39,"end":92,"loc":{"start":{"line":5,"column":0,"index":39},"end":{"line":7,"column":1,"index":92}},
"id": {
"type": "Identifier",
"start":44,"end":57,"loc":{"start":{"line":5,"column":5,"index":44},"end":{"line":5,"column":18,"index":57},"identifierName":"Contravariant"},
"name": "Contravariant"
},
"typeParameters": {
"type": "TSTypeParameterDeclaration",
"start":57,"end":63,"loc":{"start":{"line":5,"column":18,"index":57},"end":{"line":5,"column":24,"index":63}},
"params": [
{
"type": "TSTypeParameter",
"start":58,"end":62,"loc":{"start":{"line":5,"column":19,"index":58},"end":{"line":5,"column":23,"index":62}},
"in": true,
"name": "T"
}
]
},
"typeAnnotation": {
"type": "TSTypeLiteral",
"start":66,"end":92,"loc":{"start":{"line":5,"column":27,"index":66},"end":{"line":7,"column":1,"index":92}},
"members": [
{
"type": "TSPropertySignature",
"start":72,"end":90,"loc":{"start":{"line":6,"column":4,"index":72},"end":{"line":6,"column":22,"index":90}},
"key": {
"type": "Identifier",
"start":72,"end":73,"loc":{"start":{"line":6,"column":4,"index":72},"end":{"line":6,"column":5,"index":73},"identifierName":"f"},
"name": "f"
},
"computed": false,
"typeAnnotation": {
"type": "TSTypeAnnotation",
"start":73,"end":89,"loc":{"start":{"line":6,"column":5,"index":73},"end":{"line":6,"column":21,"index":89}},
"typeAnnotation": {
"type": "TSFunctionType",
"start":75,"end":89,"loc":{"start":{"line":6,"column":7,"index":75},"end":{"line":6,"column":21,"index":89}},
"parameters": [
{
"type": "Identifier",
"start":76,"end":80,"loc":{"start":{"line":6,"column":8,"index":76},"end":{"line":6,"column":12,"index":80},"identifierName":"x"},
"name": "x",
"typeAnnotation": {
"type": "TSTypeAnnotation",
"start":77,"end":80,"loc":{"start":{"line":6,"column":9,"index":77},"end":{"line":6,"column":12,"index":80}},
"typeAnnotation": {
"type": "TSTypeReference",
"start":79,"end":80,"loc":{"start":{"line":6,"column":11,"index":79},"end":{"line":6,"column":12,"index":80}},
"typeName": {
"type": "Identifier",
"start":79,"end":80,"loc":{"start":{"line":6,"column":11,"index":79},"end":{"line":6,"column":12,"index":80},"identifierName":"T"},
"name": "T"
}
}
}
}
],
"typeAnnotation": {
"type": "TSTypeAnnotation",
"start":82,"end":89,"loc":{"start":{"line":6,"column":14,"index":82},"end":{"line":6,"column":21,"index":89}},
"typeAnnotation": {
"type": "TSVoidKeyword",
"start":85,"end":89,"loc":{"start":{"line":6,"column":17,"index":85},"end":{"line":6,"column":21,"index":89}}
}
}
}
}
}
]
}
},
{
"type": "TSTypeAliasDeclaration",
"start":94,"end":144,"loc":{"start":{"line":9,"column":0,"index":94},"end":{"line":11,"column":1,"index":144}},
"id": {
"type": "Identifier",
"start":99,"end":108,"loc":{"start":{"line":9,"column":5,"index":99},"end":{"line":9,"column":14,"index":108},"identifierName":"Invariant"},
"name": "Invariant"
},
"typeParameters": {
"type": "TSTypeParameterDeclaration",
"start":108,"end":118,"loc":{"start":{"line":9,"column":14,"index":108},"end":{"line":9,"column":24,"index":118}},
"params": [
{
"type": "TSTypeParameter",
"start":109,"end":117,"loc":{"start":{"line":9,"column":15,"index":109},"end":{"line":9,"column":23,"index":117}},
"in": true,
"out": true,
"name": "T"
}
]
},
"typeAnnotation": {
"type": "TSTypeLiteral",
"start":121,"end":144,"loc":{"start":{"line":9,"column":27,"index":121},"end":{"line":11,"column":1,"index":144}},
"members": [
{
"type": "TSPropertySignature",
"start":127,"end":142,"loc":{"start":{"line":10,"column":4,"index":127},"end":{"line":10,"column":19,"index":142}},
"key": {
"type": "Identifier",
"start":127,"end":128,"loc":{"start":{"line":10,"column":4,"index":127},"end":{"line":10,"column":5,"index":128},"identifierName":"f"},
"name": "f"
},
"computed": false,
"typeAnnotation": {
"type": "TSTypeAnnotation",
"start":128,"end":141,"loc":{"start":{"line":10,"column":5,"index":128},"end":{"line":10,"column":18,"index":141}},
"typeAnnotation": {
"type": "TSFunctionType",
"start":130,"end":141,"loc":{"start":{"line":10,"column":7,"index":130},"end":{"line":10,"column":18,"index":141}},
"parameters": [
{
"type": "Identifier",
"start":131,"end":135,"loc":{"start":{"line":10,"column":8,"index":131},"end":{"line":10,"column":12,"index":135},"identifierName":"x"},
"name": "x",
"typeAnnotation": {
"type": "TSTypeAnnotation",
"start":132,"end":135,"loc":{"start":{"line":10,"column":9,"index":132},"end":{"line":10,"column":12,"index":135}},
"typeAnnotation": {
"type": "TSTypeReference",
"start":134,"end":135,"loc":{"start":{"line":10,"column":11,"index":134},"end":{"line":10,"column":12,"index":135}},
"typeName": {
"type": "Identifier",
"start":134,"end":135,"loc":{"start":{"line":10,"column":11,"index":134},"end":{"line":10,"column":12,"index":135},"identifierName":"T"},
"name": "T"
}
}
}
}
],
"typeAnnotation": {
"type": "TSTypeAnnotation",
"start":137,"end":141,"loc":{"start":{"line":10,"column":14,"index":137},"end":{"line":10,"column":18,"index":141}},
"typeAnnotation": {
"type": "TSTypeReference",
"start":140,"end":141,"loc":{"start":{"line":10,"column":17,"index":140},"end":{"line":10,"column":18,"index":141}},
"typeName": {
"type": "Identifier",
"start":140,"end":141,"loc":{"start":{"line":10,"column":17,"index":140},"end":{"line":10,"column":18,"index":141},"identifierName":"T"},
"name": "T"
}
}
}
}
}
}
]
}
}
],
"directives": []
}
}