diff --git a/packages/typedoc-plugin-markdown/src/resources/helpers/type.ts b/packages/typedoc-plugin-markdown/src/resources/helpers/type.ts index c89eeb6e2..7788e662a 100644 --- a/packages/typedoc-plugin-markdown/src/resources/helpers/type.ts +++ b/packages/typedoc-plugin-markdown/src/resources/helpers/type.ts @@ -139,8 +139,8 @@ function getDeclarationType(model: DeclarationReflection) { if (declarationIndexSignature) { const key = declarationIndexSignature.parameters ? declarationIndexSignature.parameters.map( - (param) => `[${param.name}: ${param.type}]`, - ) + (param) => `\`[${param.name}: ${param.type}]\``, + ) : ''; const obj = Handlebars.helpers.type.call(declarationIndexSignature.type); indexSignature = `${key}: ${obj}; `; @@ -148,23 +148,19 @@ function getDeclarationType(model: DeclarationReflection) { const types = model.children && model.children.map((obj) => { - return `\`${obj.name}${ - obj.flags.isOptional ? '?' : '' - }\`: ${Handlebars.helpers.type.call( - obj.signatures || obj.children ? obj : obj.type, - )} ${ - obj.defaultValue && obj.defaultValue !== '...' + return `\`${obj.name}${obj.flags.isOptional ? '?' : '' + }\`: ${Handlebars.helpers.type.call( + obj.signatures || obj.children ? obj : obj.type, + )} ${obj.defaultValue && obj.defaultValue !== '...' ? `= ${escapeChars(obj.defaultValue)}` : '' - }`; + }`; }); - return `{ ${indexSignature ? indexSignature : ''}${ - types ? types.join('; ') : '' - } }${ - model.defaultValue && model.defaultValue !== '...' + return `{ ${indexSignature ? indexSignature : ''}${types ? types.join('; ') : '' + } }${model.defaultValue && model.defaultValue !== '...' ? `= ${escapeChars(model.defaultValue)}` : '' - }`; + }`; } return '{}'; } @@ -173,17 +169,16 @@ export function getFunctionType(modelSignatures: SignatureReflection[]) { const functions = modelSignatures.map((fn) => { const typeParams = fn.typeParameters ? `<${fn.typeParameters - .map((typeParameter) => typeParameter.name) - .join(', ')}\\>` + .map((typeParameter) => typeParameter.name) + .join(', ')}\\>` : []; const params = fn.parameters ? fn.parameters.map((param) => { - return `${param.flags.isRest ? '...' : ''}\`${param.name}${ - param.flags.isOptional ? '?' : '' + return `${param.flags.isRest ? '...' : ''}\`${param.name}${param.flags.isOptional ? '?' : '' }\`: ${Handlebars.helpers.type.call( param.type ? param.type : param, )}`; - }) + }) : []; const returns = Handlebars.helpers.type.call(fn.type); return typeParams + `(${params.join(', ')}) => ${returns}`; diff --git a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/declarations.spec.ts.snap b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/declarations.spec.ts.snap index 1c30ca991..33c4b3c1b 100644 --- a/packages/typedoc-plugin-markdown/test/specs/__snapshots__/declarations.spec.ts.snap +++ b/packages/typedoc-plugin-markdown/test/specs/__snapshots__/declarations.spec.ts.snap @@ -172,6 +172,7 @@ exports[`Declarations: should compile type literal declaration 1`] = ` | :------ | :------ | :------ | | \`valueA?\` | \`number\` | Comments for valueA | | \`valueB?\` | \`boolean\` | - | +| \`valueC\` | { \`[dataId: string]\`: \`\`\\"ok\\"\`\` \\\\| \`\`\\"ko\\"\`\`; } | - | | \`valueX\` | { \`valueA\`: \`number\`[] ; \`valueY\`: (\`z\`: \`string\`) => { \`a\`: \`string\` ; \`b\`: \`string\` } ; \`valueZ\`: \`string\` } | Comment for valueX | | \`valueX.valueA\` | \`number\`[] | - | | \`valueX.valueY\` | (\`z\`: \`string\`) => { \`a\`: \`string\` ; \`b\`: \`string\` } | - | diff --git a/packages/typedoc-plugin-markdown/test/stubs/src/declarations.ts b/packages/typedoc-plugin-markdown/test/stubs/src/declarations.ts index 2e719938c..1d6acd3e5 100644 --- a/packages/typedoc-plugin-markdown/test/stubs/src/declarations.ts +++ b/packages/typedoc-plugin-markdown/test/stubs/src/declarations.ts @@ -57,6 +57,7 @@ export let typeLiteralDeclaration: { */ valueA?: number; valueB?: boolean; + valueC: { [dataId: string]: 'ok' | 'ko' } }; export let functionDeclaration: (someArg: number) => boolean;