Skip to content

Commit 89537bc

Browse files
authored
Merge pull request #1754 from RunDevelopment/issue1746
Highlight type parameters consistently
2 parents ef0904c + 5ce0bef commit 89537bc

File tree

3 files changed

+24
-16
lines changed

3 files changed

+24
-16
lines changed

src/lib/output/themes/default/partials/member.declaration.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
import { DeclarationReflection, ReflectionType } from "../../../../models";
22
import { JSX } from "../../../../utils";
3-
import { join, wbr } from "../../lib";
3+
import { renderTypeParametersSignature, wbr } from "../../lib";
44
import type { DefaultThemeRenderContext } from "../DefaultThemeRenderContext";
55

66
export const memberDeclaration = (context: DefaultThemeRenderContext, props: DeclarationReflection) => (
77
<>
88
<div class="tsd-signature tsd-kind-icon">
99
{wbr(props.name)}
10-
{!!props.typeParameters && (
11-
<>
12-
{"<"}
13-
{join(", ", props.typeParameters, (item) => item.name)}
14-
{">"}
15-
</>
16-
)}
10+
{renderTypeParametersSignature(props.typeParameters)}
1711
{props.type && (
1812
<>
1913
<span class="tsd-signature-symbol">{!!props.flags.isOptional && "?"}:</span>{" "}

src/lib/output/themes/default/partials/member.signature.title.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { join, wbr } from "../../lib";
1+
import { join, renderTypeParametersSignature, wbr } from "../../lib";
22
import type { DefaultThemeRenderContext } from "../DefaultThemeRenderContext";
33
import { JSX } from "../../../../utils";
44
import type { SignatureReflection } from "../../../../models";
@@ -21,13 +21,7 @@ export const memberSignatureTitle = (
2121
)}
2222
</>
2323
)}
24-
{!!props.typeParameters && (
25-
<>
26-
{"<"}
27-
{join(", ", props.typeParameters, (item) => item.name)}
28-
{">"}
29-
</>
30-
)}
24+
{renderTypeParametersSignature(props.typeParameters)}
3125
<span class="tsd-signature-symbol">(</span>
3226
{join(", ", props.parameters ?? [], (item) => (
3327
<>

src/lib/output/themes/lib.tsx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,23 @@ export function hasTypeParameters(
7878
}
7979
return false;
8080
}
81+
82+
export function renderTypeParametersSignature(
83+
typeParameters: readonly TypeParameterReflection[] | undefined
84+
): JSX.Element {
85+
return (
86+
<>
87+
{!!typeParameters && typeParameters.length > 0 && (
88+
<>
89+
<span class="tsd-signature-symbol">{"<"}</span>
90+
{join(<span class="tsd-signature-symbol">{", "}</span>, typeParameters, (item) => (
91+
<span class="tsd-signature-type" data-tsd-kind={item.kindString}>
92+
{item.name}
93+
</span>
94+
))}
95+
<span class="tsd-signature-symbol">{">"}</span>
96+
</>
97+
)}
98+
</>
99+
);
100+
}

0 commit comments

Comments
 (0)