diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/type.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/type.ts index 722ffa35..d62231a4 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/type.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/type.ts @@ -214,9 +214,7 @@ function getReferenceType(model: ReferenceType, emphasis) { if (model.typeArguments && model.typeArguments.length > 0) { reflection.push( `<${model.typeArguments - .map((typeArgument) => - Handlebars.helpers.type.call(typeArgument, 'all'), - ) + .map((typeArgument) => Handlebars.helpers.type.call(typeArgument)) .join(', ')}\\>`, ); } diff --git a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/signatures.spec.ts.snap b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/signatures.spec.ts.snap index da82daf4..4c057835 100644 --- a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/signatures.spec.ts.snap +++ b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/signatures.spec.ts.snap @@ -1,5 +1,23 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`Signatures: should compile a promise that returns a symbol' 1`] = ` +"▸ \`Const\` **promiseReturningASymbol**(): [\`Promise\`]( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise )<[\`User\`](../modules.md#user)\\\\> + +##### Returns + +[\`Promise\`]( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise )<[\`User\`](../modules.md#user)\\\\> +" +`; + +exports[`Signatures: should compile a promise that returns an object' 1`] = ` +"▸ \`Const\` **promiseReturningAnObject**(): [\`Promise\`]( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise )<{ \`data\`: \`string\` ; \`id\`: \`string\` }\\\\> + +##### Returns + +[\`Promise\`]( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise )<{ \`data\`: \`string\` ; \`id\`: \`string\` }\\\\> +" +`; + exports[`Signatures: should compile callable signature' 1`] = ` "▸ **CallableSignature**(): \`string\` diff --git a/packages/typedoc-plugin-markdown/test/specs/signatures.spec.ts b/packages/typedoc-plugin-markdown/test/specs/signatures.spec.ts index 28d4d280..bba668e9 100644 --- a/packages/typedoc-plugin-markdown/test/specs/signatures.spec.ts +++ b/packages/typedoc-plugin-markdown/test/specs/signatures.spec.ts @@ -55,6 +55,26 @@ describe(`Signatures:`, () => { ).toMatchSnapshot(); }); + test(`should compile a promise that returns an object'`, () => { + expect( + TestApp.compileTemplate( + partial, + testApp.findReflection('promiseReturningAnObject') + .signatures[0] as SignatureReflection, + ), + ).toMatchSnapshot(); + }); + + test(`should compile a promise that returns a symbol'`, () => { + expect( + TestApp.compileTemplate( + partial, + testApp.findReflection('promiseReturningASymbol') + .signatures[0] as SignatureReflection, + ), + ).toMatchSnapshot(); + }); + test(`should compile function that returns a function'`, () => { expect( TestApp.compileTemplate( diff --git a/packages/typedoc-plugin-markdown/test/stubs/src/signatures.ts b/packages/typedoc-plugin-markdown/test/stubs/src/signatures.ts index 581264bf..f187b0c5 100644 --- a/packages/typedoc-plugin-markdown/test/stubs/src/signatures.ts +++ b/packages/typedoc-plugin-markdown/test/stubs/src/signatures.ts @@ -146,13 +146,15 @@ export function commentsInReturn() { * @param cases - Tuple of case and the result if `value` and `case` is equal * @returns Function for which to provide the default value */ -export const swtch = (value: T, ...cases: [T, R][]) => (def: R) => { - for (const c of cases) { - if (c[0] === value) return c[1]; - } +export const swtch = + (value: T, ...cases: [T, R][]) => + (def: R) => { + for (const c of cases) { + if (c[0] === value) return c[1]; + } - return def; -}; + return def; + }; export type _someCallback_ = (name: string, value: unknown) => void; @@ -212,3 +214,23 @@ export function functionWithNestedParams( export class ClassWithConstructor { constructor(x: string, y: string) {} } + +export type User = { + id: string; + data: string; +}; + +export const promiseReturningASymbol = (): Promise => { + return new Promise((resolve) => { + resolve({ id: 'id', data: 'data' }); + }); +}; + +export const promiseReturningAnObject = (): Promise<{ + id: string; + data: string; +}> => { + return new Promise((resolve) => { + resolve({ id: 'id', data: 'data' }); + }); +};