@@ -406,7 +406,7 @@ exports.parseTagTypes = function(str, tag) {
406406 }
407407 return [ ] ;
408408 }
409- var { parse, publish, createDefaultPublisher, NodeType} = require ( 'jsdoctypeparser' ) ;
409+ var { parse, publish, createDefaultPublisher, NodeType, SyntaxType } = require ( 'jsdoctypeparser' ) ;
410410 var result = parse ( str . substring ( 1 , str . length - 1 ) ) ;
411411
412412 var customPublisher = Object . assign ( { } , createDefaultPublisher ( ) , {
@@ -433,6 +433,21 @@ exports.parseTagTypes = function(str, tag) {
433433 obj [ entry . key ] = transform ( entry . value ) ;
434434 return obj ;
435435 } , { } ) ] ;
436+ } else if ( type && type . type === NodeType . GENERIC ) {
437+ if ( type . meta . syntax === SyntaxType . GenericTypeSyntax . ANGLE_BRACKET ) {
438+ return [ type . subject . name + '<' + transform ( type . objects [ 0 ] ) . join ( '|' ) + '>' ] ;
439+ } else if ( type . meta . syntax === SyntaxType . GenericTypeSyntax . ANGLE_BRACKET_WITH_DOT ) {
440+ return [ type . subject . name + '.<' + transform ( type . objects [ 0 ] ) . join ( '|' ) + '>' ] ;
441+ } else if ( type . meta . syntax === SyntaxType . GenericTypeSyntax . SQUARE_BRACKET ) {
442+ return [ type . subject . name + '[' + transform ( type . objects [ 0 ] ) . join ( '|' ) + ']' ] ;
443+ } else if ( type . meta . syntax === SyntaxType . VariadicTypeSyntax . PREFIX_DOTS ) {
444+ return [ `...${ type . subject . name } ` ] ;
445+ } else if ( type . meta . syntax === SyntaxType . VariadicTypeSyntax . SUFFIX_DOTS ) {
446+ return [ `${ type . subject . name } ...` ] ;
447+ } else if ( type . meta . syntax === SyntaxType . VariadicTypeSyntax . ONLY_DOTS ) {
448+ return [ '...' ] ;
449+ }
450+ return [ type . subject . name ]
436451 } else if ( type && type . value ) {
437452 return transform ( type . value ) ;
438453 } else {
0 commit comments