diff --git a/src/lib/output/themes/default/partials/member.declaration.tsx b/src/lib/output/themes/default/partials/member.declaration.tsx index 2affdbb06..90c22c7ec 100644 --- a/src/lib/output/themes/default/partials/member.declaration.tsx +++ b/src/lib/output/themes/default/partials/member.declaration.tsx @@ -1,19 +1,13 @@ import { DeclarationReflection, ReflectionType } from "../../../../models"; import { JSX } from "../../../../utils"; -import { join, wbr } from "../../lib"; +import { renderTypeParametersSignature, wbr } from "../../lib"; import type { DefaultThemeRenderContext } from "../DefaultThemeRenderContext"; export const memberDeclaration = (context: DefaultThemeRenderContext, props: DeclarationReflection) => ( <>
{wbr(props.name)} - {!!props.typeParameters && ( - <> - {"<"} - {join(", ", props.typeParameters, (item) => item.name)} - {">"} - - )} + {renderTypeParametersSignature(props.typeParameters)} {props.type && ( <> {!!props.flags.isOptional && "?"}:{" "} diff --git a/src/lib/output/themes/default/partials/member.signature.title.tsx b/src/lib/output/themes/default/partials/member.signature.title.tsx index 6ee1d5f00..05200e891 100644 --- a/src/lib/output/themes/default/partials/member.signature.title.tsx +++ b/src/lib/output/themes/default/partials/member.signature.title.tsx @@ -1,4 +1,4 @@ -import { join, wbr } from "../../lib"; +import { join, renderTypeParametersSignature, wbr } from "../../lib"; import type { DefaultThemeRenderContext } from "../DefaultThemeRenderContext"; import { JSX } from "../../../../utils"; import type { SignatureReflection } from "../../../../models"; @@ -21,13 +21,7 @@ export const memberSignatureTitle = ( )} )} - {!!props.typeParameters && ( - <> - {"<"} - {join(", ", props.typeParameters, (item) => item.name)} - {">"} - - )} + {renderTypeParametersSignature(props.typeParameters)} ( {join(", ", props.parameters ?? [], (item) => ( <> diff --git a/src/lib/output/themes/lib.tsx b/src/lib/output/themes/lib.tsx index 7c31fc3d3..1321a2c26 100644 --- a/src/lib/output/themes/lib.tsx +++ b/src/lib/output/themes/lib.tsx @@ -78,3 +78,23 @@ export function hasTypeParameters( } return false; } + +export function renderTypeParametersSignature( + typeParameters: readonly TypeParameterReflection[] | undefined +): JSX.Element { + return ( + <> + {!!typeParameters && typeParameters.length > 0 && ( + <> + {"<"} + {join({", "}, typeParameters, (item) => ( + + {item.name} + + ))} + {">"} + + )} + + ); +}