Skip to content

Commit 53cf7f7

Browse files
committed
Type parameters now follow hideParameterTypesInTitle
Resolves #2226
1 parent e3d7658 commit 53cf7f7

File tree

5 files changed

+38
-13
lines changed

5 files changed

+38
-13
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66

77
### Bug Fixes
88

9+
- Type parameter constraints now respect the `--hideParameterTypesInTitle` option, #2226.
910
- Even more contrast fixes, #2248.
1011
- Fix semantic highlighting for predicate type's parameter references, #2249.
12+
- Fixed inconsistent styling between type parameter lists and parameter lists.
1113

1214
## v0.24.4 (2023-04-16)
1315

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export const memberDeclaration = (context: DefaultThemeRenderContext, props: Dec
77
<>
88
<div class="tsd-signature">
99
<span class={getKindClass(props)}>{wbr(props.name)}</span>
10-
{renderTypeParametersSignature(props.typeParameters)}
10+
{renderTypeParametersSignature(context, props.typeParameters)}
1111
{props.type && (
1212
<>
1313
<span class="tsd-signature-symbol">{!!props.flags.isOptional && "?"}:</span>{" "}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export function memberSignatureTitle(
5050
)}
5151
</>
5252
)}
53-
{renderTypeParametersSignature(props.typeParameters)}
53+
{renderTypeParametersSignature(context, props.typeParameters)}
5454
<span class="tsd-signature-symbol">(</span>
5555
{join(", ", props.parameters ?? [], renderParam)}
5656
<span class="tsd-signature-symbol">)</span>

src/lib/output/themes/default/partials/typeParameters.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import { JSX } from "../../../../utils";
55
export function typeParameters(context: DefaultThemeRenderContext, typeParameters: TypeParameterReflection[]) {
66
return (
77
<>
8-
<section class="tsd-panel tsd-type-parameters">
8+
<section class="tsd-panel">
99
<h4>Type Parameters</h4>
10-
<ul class="tsd-type-parameters">
10+
<ul class="tsd-type-parameter-list">
1111
{typeParameters?.map((item) => (
1212
<li>
1313
<h4>

src/lib/output/themes/lib.tsx

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type { DefaultThemeRenderContext } from "..";
12
import {
23
Comment,
34
DeclarationReflection,
@@ -112,23 +113,45 @@ export function hasTypeParameters(
112113
}
113114

114115
export function renderTypeParametersSignature(
116+
context: DefaultThemeRenderContext,
115117
typeParameters: readonly TypeParameterReflection[] | undefined
116118
): JSX.Element {
119+
if (!typeParameters || typeParameters.length === 0) return <></>;
120+
const hideParamTypes = context.options.getValue("hideParameterTypesInTitle");
121+
122+
if (hideParamTypes) {
123+
return (
124+
<>
125+
<span class="tsd-signature-symbol">{"<"}</span>
126+
{join(<span class="tsd-signature-symbol">{", "}</span>, typeParameters, (item) => (
127+
<>
128+
{item.flags.isConst && "const "}
129+
{item.varianceModifier ? `${item.varianceModifier} ` : ""}
130+
<span class="tsd-signature-type tsd-kind-type-parameter">{item.name}</span>
131+
</>
132+
))}
133+
<span class="tsd-signature-symbol">{">"}</span>
134+
</>
135+
);
136+
}
137+
117138
return (
118139
<>
119-
{!!typeParameters && typeParameters.length > 0 && (
140+
<span class="tsd-signature-symbol">{"<"}</span>
141+
{join(<span class="tsd-signature-symbol">{", "}</span>, typeParameters, (item) => (
120142
<>
121-
<span class="tsd-signature-symbol">{"<"}</span>
122-
{join(<span class="tsd-signature-symbol">{", "}</span>, typeParameters, (item) => (
143+
{item.flags.isConst && "const "}
144+
{item.varianceModifier ? `${item.varianceModifier} ` : ""}
145+
<span class="tsd-signature-type tsd-kind-type-parameter">{item.name}</span>
146+
{!!item.type && (
123147
<>
124-
{item.flags.isConst && "const "}
125-
{item.varianceModifier ? `${item.varianceModifier} ` : ""}
126-
<span class="tsd-signature-type tsd-kind-type-parameter">{item.name}</span>
148+
<span class="tsd-signature-symbol"> extends </span>
149+
{context.type(item.type)}
127150
</>
128-
))}
129-
<span class="tsd-signature-symbol">{">"}</span>
151+
)}
130152
</>
131-
)}
153+
))}
154+
<span class="tsd-signature-symbol">{">"}</span>
132155
</>
133156
);
134157
}

0 commit comments

Comments
 (0)