Skip to content

Commit 8a32841

Browse files
committed
Added support for generic types.
1 parent bc4f871 commit 8a32841

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

lib/dox.js

+16-1
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)