1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "FunctionDeclaration", 6 "function": { 7 "type": "ScriptFunction", 8 "id": { 9 "type": "Identifier", 10 "name": "func", 11 "loc": { 12 "start": { 13 "line": 17, 14 "column": 10 15 }, 16 "end": { 17 "line": 17, 18 "column": 14 19 } 20 } 21 }, 22 "generator": false, 23 "async": false, 24 "expression": false, 25 "params": [], 26 "typeParameters": { 27 "type": "TSTypeParameterDeclaration", 28 "params": [ 29 { 30 "type": "TSTypeParameter", 31 "name": { 32 "type": "Identifier", 33 "name": "T", 34 "loc": { 35 "start": { 36 "line": 17, 37 "column": 15 38 }, 39 "end": { 40 "line": 17, 41 "column": 16 42 } 43 } 44 }, 45 "in": false, 46 "out": false, 47 "loc": { 48 "start": { 49 "line": 17, 50 "column": 15 51 }, 52 "end": { 53 "line": 17, 54 "column": 17 55 } 56 } 57 } 58 ], 59 "loc": { 60 "start": { 61 "line": 17, 62 "column": 14 63 }, 64 "end": { 65 "line": 17, 66 "column": 17 67 } 68 } 69 }, 70 "body": { 71 "type": "BlockStatement", 72 "statements": [], 73 "loc": { 74 "start": { 75 "line": 17, 76 "column": 20 77 }, 78 "end": { 79 "line": 17, 80 "column": 22 81 } 82 } 83 }, 84 "loc": { 85 "start": { 86 "line": 17, 87 "column": 1 88 }, 89 "end": { 90 "line": 17, 91 "column": 22 92 } 93 } 94 }, 95 "loc": { 96 "start": { 97 "line": 17, 98 "column": 1 99 }, 100 "end": { 101 "line": 17, 102 "column": 22 103 } 104 } 105 }, 106 { 107 "type": "ExpressionStatement", 108 "expression": { 109 "type": "ChainExpression", 110 "expression": { 111 "type": "CallExpression", 112 "callee": { 113 "type": "Identifier", 114 "name": "func", 115 "loc": { 116 "start": { 117 "line": 18, 118 "column": 1 119 }, 120 "end": { 121 "line": 18, 122 "column": 5 123 } 124 } 125 }, 126 "arguments": [], 127 "optional": true, 128 "typeParameters": { 129 "type": "TSTypeParameterInstantiation", 130 "params": [ 131 { 132 "type": "TSNumberKeyword", 133 "loc": { 134 "start": { 135 "line": 18, 136 "column": 8 137 }, 138 "end": { 139 "line": 18, 140 "column": 14 141 } 142 } 143 } 144 ], 145 "loc": { 146 "start": { 147 "line": 18, 148 "column": 7 149 }, 150 "end": { 151 "line": 18, 152 "column": 15 153 } 154 } 155 }, 156 "loc": { 157 "start": { 158 "line": 18, 159 "column": 1 160 }, 161 "end": { 162 "line": 18, 163 "column": 17 164 } 165 } 166 }, 167 "loc": { 168 "start": { 169 "line": 18, 170 "column": 1 171 }, 172 "end": { 173 "line": 18, 174 "column": 17 175 } 176 } 177 }, 178 "loc": { 179 "start": { 180 "line": 18, 181 "column": 1 182 }, 183 "end": { 184 "line": 18, 185 "column": 18 186 } 187 } 188 }, 189 { 190 "type": "ExpressionStatement", 191 "expression": { 192 "type": "ChainExpression", 193 "expression": { 194 "type": "CallExpression", 195 "callee": { 196 "type": "TypeArgumentsExpression", 197 "leftHandExpression": { 198 "type": "Identifier", 199 "name": "func", 200 "loc": { 201 "start": { 202 "line": 19, 203 "column": 1 204 }, 205 "end": { 206 "line": 19, 207 "column": 5 208 } 209 } 210 }, 211 "typeArguments": { 212 "type": "TSTypeParameterInstantiation", 213 "params": [ 214 { 215 "type": "TSTypeReference", 216 "typeName": { 217 "type": "Identifier", 218 "name": "Number", 219 "loc": { 220 "start": { 221 "line": 19, 222 "column": 6 223 }, 224 "end": { 225 "line": 19, 226 "column": 12 227 } 228 } 229 }, 230 "loc": { 231 "start": { 232 "line": 19, 233 "column": 6 234 }, 235 "end": { 236 "line": 19, 237 "column": 12 238 } 239 } 240 } 241 ], 242 "loc": { 243 "start": { 244 "line": 19, 245 "column": 5 246 }, 247 "end": { 248 "line": 19, 249 "column": 13 250 } 251 } 252 }, 253 "loc": { 254 "start": { 255 "line": 19, 256 "column": 1 257 }, 258 "end": { 259 "line": 19, 260 "column": 13 261 } 262 } 263 }, 264 "arguments": [], 265 "optional": true, 266 "loc": { 267 "start": { 268 "line": 19, 269 "column": 1 270 }, 271 "end": { 272 "line": 19, 273 "column": 17 274 } 275 } 276 }, 277 "loc": { 278 "start": { 279 "line": 19, 280 "column": 1 281 }, 282 "end": { 283 "line": 19, 284 "column": 17 285 } 286 } 287 }, 288 "loc": { 289 "start": { 290 "line": 19, 291 "column": 1 292 }, 293 "end": { 294 "line": 19, 295 "column": 18 296 } 297 } 298 } 299 ], 300 "loc": { 301 "start": { 302 "line": 1, 303 "column": 1 304 }, 305 "end": { 306 "line": 20, 307 "column": 1 308 } 309 } 310} 311