@@ -400,9 +400,97 @@ class Referencer extends OriginalReferencer {
400400 }
401401 }
402402
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+
403491 /**
404492 * 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.
406494 * @returns {void }
407495 */
408496 TSQualifiedName ( node ) {
@@ -616,6 +704,21 @@ class Referencer extends OriginalReferencer {
616704 decorators . forEach ( this . visit , this ) ;
617705 }
618706 }
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+ }
619722}
620723
621724module . exports = function ( ast , parserOptions , extraOptions ) {
0 commit comments