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