Skip to content

Commit 2affff0

Browse files
author
Andy Hanson
committed
Add '?' in quick info for optional properties/methods
1 parent 0c17a2b commit 2affff0

File tree

4 files changed

+8
-4
lines changed

4 files changed

+8
-4
lines changed

src/services/symbolDisplay.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,10 @@ namespace ts.SymbolDisplay {
549549
const fullSymbolDisplayParts = symbolToDisplayParts(typeChecker, symbolToDisplay, enclosingDeclaration || sourceFile, /*meaning*/ undefined,
550550
SymbolFormatFlags.WriteTypeParametersOrArguments | SymbolFormatFlags.UseOnlyExternalAliasing | SymbolFormatFlags.AllowAnyNodeKind);
551551
addRange(displayParts, fullSymbolDisplayParts);
552+
553+
if (symbol.flags & SymbolFlags.Optional) {
554+
displayParts.push(punctuationPart(SyntaxKind.QuestionToken));
555+
}
552556
}
553557

554558
function addPrefixForAnyFunctionOrVar(symbol: Symbol, symbolKind: string) {

tests/cases/fourslash/findAllRefsForObjectSpread.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ const [r0, r1, r2, r3] = ranges;
1212

1313
// members of spread types only refer to themselves and the resulting property
1414
verify.referenceGroups(r0, [{ definition: "(property) A1.a: string", ranges: [r0, r2, r3] }]);
15-
verify.referenceGroups(r1, [{ definition: "(property) A2.a: number", ranges: [r1, r2] }]);
15+
verify.referenceGroups(r1, [{ definition: "(property) A2.a?: number", ranges: [r1, r2] }]);
1616

1717
// but the resulting property refers to everything
1818
verify.referenceGroups(r2, [
1919
{ definition: "(property) A1.a: string", ranges: [r0, r2, r3] },
20-
{ definition: "(property) A2.a: number", ranges: [r1] },
20+
{ definition: "(property) A2.a?: number", ranges: [r1] },
2121
]);
2222

2323
verify.referenceGroups(r3, [{ definition: "(property) A1.a: string", ranges: [r0, r2, r3] }]);

tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88
////function f ({ [|next|]: { [|next|]: x} }: Recursive) {
99
////}
1010

11-
verify.singleReferenceGroup("(property) Recursive.next: Recursive");
11+
verify.singleReferenceGroup("(property) Recursive.next?: Recursive");

tests/cases/fourslash/quickInfoForObjectBindingElementPropertyName03.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@
99
////}
1010

1111
for (const marker of test.markerNames()) {
12-
verify.quickInfoAt(marker, "(property) Recursive.next: Recursive");
12+
verify.quickInfoAt(marker, "(property) Recursive.next?: Recursive");
1313
}

0 commit comments

Comments
 (0)