@@ -406,7 +406,7 @@ exports.parseTagTypes = function(str, tag) {
406
406
}
407
407
return [ ] ;
408
408
}
409
- var { parse, publish, createDefaultPublisher, NodeType} = require ( 'jsdoctypeparser' ) ;
409
+ var { parse, publish, createDefaultPublisher, NodeType, SyntaxType } = require ( 'jsdoctypeparser' ) ;
410
410
var result = parse ( str . substring ( 1 , str . length - 1 ) ) ;
411
411
412
412
var customPublisher = Object . assign ( { } , createDefaultPublisher ( ) , {
@@ -433,6 +433,21 @@ exports.parseTagTypes = function(str, tag) {
433
433
obj [ entry . key ] = transform ( entry . value ) ;
434
434
return obj ;
435
435
} , { } ) ] ;
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 ]
436
451
} else if ( type && type . value ) {
437
452
return transform ( type . value ) ;
438
453
} else {
0 commit comments