1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "TSInterfaceDeclaration", 6 "body": { 7 "type": "TSInterfaceBody", 8 "body": [ 9 { 10 "type": "TSPropertySignature", 11 "computed": false, 12 "optional": false, 13 "readonly": false, 14 "key": { 15 "type": "Identifier", 16 "name": "a", 17 "decorators": [], 18 "loc": { 19 "start": { 20 "line": 18, 21 "column": 5 22 }, 23 "end": { 24 "line": 18, 25 "column": 6 26 } 27 } 28 }, 29 "typeAnnotation": { 30 "type": "TSTypeReference", 31 "typeName": { 32 "type": "Identifier", 33 "name": "B", 34 "decorators": [], 35 "loc": { 36 "start": { 37 "line": 18, 38 "column": 8 39 }, 40 "end": { 41 "line": 18, 42 "column": 9 43 } 44 } 45 }, 46 "loc": { 47 "start": { 48 "line": 18, 49 "column": 8 50 }, 51 "end": { 52 "line": 18, 53 "column": 9 54 } 55 } 56 }, 57 "loc": { 58 "start": { 59 "line": 18, 60 "column": 5 61 }, 62 "end": { 63 "line": 18, 64 "column": 10 65 } 66 } 67 }, 68 { 69 "type": "TSPropertySignature", 70 "computed": false, 71 "optional": false, 72 "readonly": false, 73 "key": { 74 "type": "Identifier", 75 "name": "b", 76 "decorators": [], 77 "loc": { 78 "start": { 79 "line": 19, 80 "column": 5 81 }, 82 "end": { 83 "line": 19, 84 "column": 6 85 } 86 } 87 }, 88 "typeAnnotation": { 89 "type": "TSTypeReference", 90 "typeName": { 91 "type": "Identifier", 92 "name": "A", 93 "decorators": [], 94 "loc": { 95 "start": { 96 "line": 19, 97 "column": 8 98 }, 99 "end": { 100 "line": 19, 101 "column": 9 102 } 103 } 104 }, 105 "loc": { 106 "start": { 107 "line": 19, 108 "column": 8 109 }, 110 "end": { 111 "line": 19, 112 "column": 9 113 } 114 } 115 }, 116 "loc": { 117 "start": { 118 "line": 19, 119 "column": 5 120 }, 121 "end": { 122 "line": 19, 123 "column": 10 124 } 125 } 126 } 127 ], 128 "loc": { 129 "start": { 130 "line": 17, 131 "column": 13 132 }, 133 "end": { 134 "line": 20, 135 "column": 2 136 } 137 } 138 }, 139 "id": { 140 "type": "Identifier", 141 "name": "A", 142 "decorators": [], 143 "loc": { 144 "start": { 145 "line": 17, 146 "column": 11 147 }, 148 "end": { 149 "line": 17, 150 "column": 12 151 } 152 } 153 }, 154 "extends": [], 155 "loc": { 156 "start": { 157 "line": 17, 158 "column": 1 159 }, 160 "end": { 161 "line": 20, 162 "column": 2 163 } 164 } 165 }, 166 { 167 "type": "TSInterfaceDeclaration", 168 "body": { 169 "type": "TSInterfaceBody", 170 "body": [ 171 { 172 "type": "TSPropertySignature", 173 "computed": false, 174 "optional": false, 175 "readonly": false, 176 "key": { 177 "type": "Identifier", 178 "name": "c", 179 "decorators": [], 180 "loc": { 181 "start": { 182 "line": 23, 183 "column": 5 184 }, 185 "end": { 186 "line": 23, 187 "column": 6 188 } 189 } 190 }, 191 "typeAnnotation": { 192 "type": "TSTypeReference", 193 "typeName": { 194 "type": "Identifier", 195 "name": "A", 196 "decorators": [], 197 "loc": { 198 "start": { 199 "line": 23, 200 "column": 8 201 }, 202 "end": { 203 "line": 23, 204 "column": 9 205 } 206 } 207 }, 208 "loc": { 209 "start": { 210 "line": 23, 211 "column": 8 212 }, 213 "end": { 214 "line": 23, 215 "column": 9 216 } 217 } 218 }, 219 "loc": { 220 "start": { 221 "line": 23, 222 "column": 5 223 }, 224 "end": { 225 "line": 23, 226 "column": 10 227 } 228 } 229 } 230 ], 231 "loc": { 232 "start": { 233 "line": 22, 234 "column": 23 235 }, 236 "end": { 237 "line": 24, 238 "column": 2 239 } 240 } 241 }, 242 "id": { 243 "type": "Identifier", 244 "name": "B", 245 "decorators": [], 246 "loc": { 247 "start": { 248 "line": 22, 249 "column": 11 250 }, 251 "end": { 252 "line": 22, 253 "column": 12 254 } 255 } 256 }, 257 "extends": [ 258 { 259 "type": "TSInterfaceHeritage", 260 "expression": { 261 "type": "TSTypeReference", 262 "typeName": { 263 "type": "Identifier", 264 "name": "A", 265 "decorators": [], 266 "loc": { 267 "start": { 268 "line": 22, 269 "column": 21 270 }, 271 "end": { 272 "line": 22, 273 "column": 22 274 } 275 } 276 }, 277 "loc": { 278 "start": { 279 "line": 22, 280 "column": 23 281 }, 282 "end": { 283 "line": 22, 284 "column": 22 285 } 286 } 287 }, 288 "loc": { 289 "start": { 290 "line": 22, 291 "column": 23 292 }, 293 "end": { 294 "line": 22, 295 "column": 22 296 } 297 } 298 } 299 ], 300 "loc": { 301 "start": { 302 "line": 22, 303 "column": 1 304 }, 305 "end": { 306 "line": 24, 307 "column": 2 308 } 309 } 310 }, 311 { 312 "type": "VariableDeclaration", 313 "declarations": [ 314 { 315 "type": "VariableDeclarator", 316 "id": { 317 "type": "Identifier", 318 "name": "foo", 319 "typeAnnotation": { 320 "type": "TSTypeReference", 321 "typeName": { 322 "type": "Identifier", 323 "name": "B", 324 "decorators": [], 325 "loc": { 326 "start": { 327 "line": 26, 328 "column": 10 329 }, 330 "end": { 331 "line": 26, 332 "column": 11 333 } 334 } 335 }, 336 "loc": { 337 "start": { 338 "line": 26, 339 "column": 10 340 }, 341 "end": { 342 "line": 26, 343 "column": 11 344 } 345 } 346 }, 347 "decorators": [], 348 "loc": { 349 "start": { 350 "line": 26, 351 "column": 5 352 }, 353 "end": { 354 "line": 26, 355 "column": 8 356 } 357 } 358 }, 359 "init": null, 360 "loc": { 361 "start": { 362 "line": 26, 363 "column": 5 364 }, 365 "end": { 366 "line": 26, 367 "column": 8 368 } 369 } 370 } 371 ], 372 "kind": "var", 373 "loc": { 374 "start": { 375 "line": 26, 376 "column": 1 377 }, 378 "end": { 379 "line": 26, 380 "column": 12 381 } 382 } 383 }, 384 { 385 "type": "ExpressionStatement", 386 "expression": { 387 "type": "MemberExpression", 388 "object": { 389 "type": "MemberExpression", 390 "object": { 391 "type": "MemberExpression", 392 "object": { 393 "type": "MemberExpression", 394 "object": { 395 "type": "MemberExpression", 396 "object": { 397 "type": "MemberExpression", 398 "object": { 399 "type": "Identifier", 400 "name": "foo", 401 "decorators": [], 402 "loc": { 403 "start": { 404 "line": 28, 405 "column": 1 406 }, 407 "end": { 408 "line": 28, 409 "column": 4 410 } 411 } 412 }, 413 "property": { 414 "type": "Identifier", 415 "name": "a", 416 "decorators": [], 417 "loc": { 418 "start": { 419 "line": 28, 420 "column": 5 421 }, 422 "end": { 423 "line": 28, 424 "column": 6 425 } 426 } 427 }, 428 "computed": false, 429 "optional": false, 430 "loc": { 431 "start": { 432 "line": 28, 433 "column": 1 434 }, 435 "end": { 436 "line": 28, 437 "column": 6 438 } 439 } 440 }, 441 "property": { 442 "type": "Identifier", 443 "name": "b", 444 "decorators": [], 445 "loc": { 446 "start": { 447 "line": 28, 448 "column": 7 449 }, 450 "end": { 451 "line": 28, 452 "column": 8 453 } 454 } 455 }, 456 "computed": false, 457 "optional": false, 458 "loc": { 459 "start": { 460 "line": 28, 461 "column": 1 462 }, 463 "end": { 464 "line": 28, 465 "column": 8 466 } 467 } 468 }, 469 "property": { 470 "type": "Identifier", 471 "name": "b", 472 "decorators": [], 473 "loc": { 474 "start": { 475 "line": 28, 476 "column": 9 477 }, 478 "end": { 479 "line": 28, 480 "column": 10 481 } 482 } 483 }, 484 "computed": false, 485 "optional": false, 486 "loc": { 487 "start": { 488 "line": 28, 489 "column": 1 490 }, 491 "end": { 492 "line": 28, 493 "column": 10 494 } 495 } 496 }, 497 "property": { 498 "type": "Identifier", 499 "name": "a", 500 "decorators": [], 501 "loc": { 502 "start": { 503 "line": 28, 504 "column": 11 505 }, 506 "end": { 507 "line": 28, 508 "column": 12 509 } 510 } 511 }, 512 "computed": false, 513 "optional": false, 514 "loc": { 515 "start": { 516 "line": 28, 517 "column": 1 518 }, 519 "end": { 520 "line": 28, 521 "column": 12 522 } 523 } 524 }, 525 "property": { 526 "type": "Identifier", 527 "name": "c", 528 "decorators": [], 529 "loc": { 530 "start": { 531 "line": 28, 532 "column": 13 533 }, 534 "end": { 535 "line": 28, 536 "column": 14 537 } 538 } 539 }, 540 "computed": false, 541 "optional": false, 542 "loc": { 543 "start": { 544 "line": 28, 545 "column": 1 546 }, 547 "end": { 548 "line": 28, 549 "column": 14 550 } 551 } 552 }, 553 "property": { 554 "type": "Identifier", 555 "name": "r", 556 "decorators": [], 557 "loc": { 558 "start": { 559 "line": 28, 560 "column": 15 561 }, 562 "end": { 563 "line": 28, 564 "column": 16 565 } 566 } 567 }, 568 "computed": false, 569 "optional": false, 570 "loc": { 571 "start": { 572 "line": 28, 573 "column": 1 574 }, 575 "end": { 576 "line": 28, 577 "column": 16 578 } 579 } 580 }, 581 "loc": { 582 "start": { 583 "line": 28, 584 "column": 1 585 }, 586 "end": { 587 "line": 28, 588 "column": 16 589 } 590 } 591 } 592 ], 593 "loc": { 594 "start": { 595 "line": 1, 596 "column": 1 597 }, 598 "end": { 599 "line": 29, 600 "column": 1 601 } 602 } 603} 604TypeError: Property r does not exist on this type. [interfacePropertyReferenceContainingInterface1.ts:28:15] 605