diff --git a/cli/lib/tsd-jsdoc/publish.js b/cli/lib/tsd-jsdoc/publish.js index 9c5c54bd6..98e4ffb78 100644 --- a/cli/lib/tsd-jsdoc/publish.js +++ b/cli/lib/tsd-jsdoc/publish.js @@ -549,16 +549,20 @@ function handleTypeDef(element, parent) { if (element.templates && element.templates.length) write("<", element.templates.join(", "), ">"); write(" = "); - var type = getTypeOf(element); - if (element.type && element.type.names.length === 1 && element.type.names[0] === "function") - writeFunctionSignature(element, false, true); - else if (type === "object") { - if (element.properties && element.properties.length) - writeInterfaceBody(element); - else - write("{}"); - } else - write(type); + if (element.tsType) + write(element.tsType); + else { + var type = getTypeOf(element); + if (element.type && element.type.names.length === 1 && element.type.names[0] === "function") + writeFunctionSignature(element, false, true); + else if (type === "object") { + if (element.properties && element.properties.length) + writeInterfaceBody(element); + else + write("{}"); + } else + write(type); + } writeln(";"); } } diff --git a/src/typescript.jsdoc b/src/typescript.jsdoc index 65e6a4b62..37d2dfd9f 100644 --- a/src/typescript.jsdoc +++ b/src/typescript.jsdoc @@ -2,6 +2,7 @@ * Constructor type. * @typedef Constructor * @template T extends object + * @type {Function} * @tstype { new(...params: any[]): T } */ @@ -9,5 +10,6 @@ * Properties type. * @typedef Properties * @template T extends object + * @type {Object.} * @tstype { [P in keyof T]?: T[P] } & { [key: string]: any } */