@@ -400,9 +400,97 @@ class Referencer extends OriginalReferencer {
400
400
}
401
401
}
402
402
403
+ /**
404
+ * @param {TSTypeReference } node The TSTypeReference node to visit.
405
+ * @returns {void }
406
+ */
407
+ TSTypeReference ( node ) {
408
+ this . visitTypeNodes ( node ) ;
409
+ }
410
+
411
+ /**
412
+ * @param {TSTypeLiteral } node The TSTypeLiteral node to visit.
413
+ * @returns {void }
414
+ */
415
+ TSTypeLiteral ( node ) {
416
+ this . visitTypeNodes ( node ) ;
417
+ }
418
+
419
+ /**
420
+ * @param {TSLiteralType } node The TSLiteralType node to visit.
421
+ * @returns {void }
422
+ */
423
+ TSLiteralType ( node ) {
424
+ this . visitTypeNodes ( node ) ;
425
+ }
426
+
427
+ /**
428
+ * @param {TSIntersectionType } node The TSIntersectionType node to visit.
429
+ * @returns {void }
430
+ */
431
+ TSIntersectionType ( node ) {
432
+ this . visitTypeNodes ( node ) ;
433
+ }
434
+
435
+ /**
436
+ * @param {TSConditionalType } node The TSConditionalType node to visit.
437
+ * @returns {void }
438
+ */
439
+ TSConditionalType ( node ) {
440
+ this . visitTypeNodes ( node ) ;
441
+ }
442
+
443
+ /**
444
+ * @param {TSIndexedAccessType } node The TSIndexedAccessType node to visit.
445
+ * @returns {void }
446
+ */
447
+ TSIndexedAccessType ( node ) {
448
+ this . visitTypeNodes ( node ) ;
449
+ }
450
+
451
+ /**
452
+ * @param {TSMappedType } node The TSMappedType node to visit.
453
+ * @returns {void }
454
+ */
455
+ TSMappedType ( node ) {
456
+ this . visitTypeNodes ( node ) ;
457
+ }
458
+
459
+ /**
460
+ * @param {TSOptionalType } node The TSOptionalType node to visit.
461
+ * @returns {void }
462
+ */
463
+ TSOptionalType ( node ) {
464
+ this . visitTypeNodes ( node ) ;
465
+ }
466
+
467
+ /**
468
+ * @param {TSParenthesizedType } node The TSParenthesizedType node to visit.
469
+ * @returns {void }
470
+ */
471
+ TSParenthesizedType ( node ) {
472
+ this . visitTypeNodes ( node ) ;
473
+ }
474
+
475
+ /**
476
+ * @param {TSRestType } node The TSRestType node to visit.
477
+ * @returns {void }
478
+ */
479
+ TSRestType ( node ) {
480
+ this . visitTypeNodes ( node ) ;
481
+ }
482
+
483
+ /**
484
+ * @param {TSTupleType } node The TSTupleType node to visit.
485
+ * @returns {void }
486
+ */
487
+ TSTupleType ( node ) {
488
+ this . visitTypeNodes ( node ) ;
489
+ }
490
+
403
491
/**
404
492
* Create reference objects for the object part. (This is `obj.prop`)
405
- * @param {TSTypeQuery } node The TSTypeQuery node to visit.
493
+ * @param {TSQualifiedName } node The TSQualifiedName node to visit.
406
494
* @returns {void }
407
495
*/
408
496
TSQualifiedName ( node ) {
@@ -616,6 +704,21 @@ class Referencer extends OriginalReferencer {
616
704
decorators . forEach ( this . visit , this ) ;
617
705
}
618
706
}
707
+
708
+ /**
709
+ * Process all child of type nodes
710
+ * @param {any } node node to be processed
711
+ * @returns {void }
712
+ */
713
+ visitTypeNodes ( node ) {
714
+ if ( this . typeMode ) {
715
+ this . visitChildren ( node ) ;
716
+ } else {
717
+ this . typeMode = true ;
718
+ this . visitChildren ( node ) ;
719
+ this . typeMode = false ;
720
+ }
721
+ }
619
722
}
620
723
621
724
module . exports = function ( ast , parserOptions , extraOptions ) {
0 commit comments