diff --git a/src/services/completions.ts b/src/services/completions.ts index 1f714960865..209d04f763e 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -388,7 +388,7 @@ namespace ts.Completions { // '/*completion position*/' // }); const type = typeChecker.getContextualType(node.parent.parent); - return { kind: StringLiteralCompletionKind.Properties, symbols: type && type.getApparentProperties() }; + return type && { kind: StringLiteralCompletionKind.Properties, symbols: type.getApparentProperties() }; } return fromContextualType(); diff --git a/tests/cases/fourslash/completionsStringLiteral_objectProperty.ts b/tests/cases/fourslash/completionsStringLiteral_objectProperty.ts new file mode 100644 index 00000000000..d2ba8dd3122 --- /dev/null +++ b/tests/cases/fourslash/completionsStringLiteral_objectProperty.ts @@ -0,0 +1,8 @@ +/// + +////const x = { "/**/" }; + +// We specifically filter out any array-like types. +// Private members will be excluded by `createUnionOrIntersectionProperty`. +goTo.marker(""); +verify.completionListIsEmpty();