diff --git a/src/services/stringCompletions.ts b/src/services/stringCompletions.ts index 61c23266701fa..e2250bee92f6f 100644 --- a/src/services/stringCompletions.ts +++ b/src/services/stringCompletions.ts @@ -387,7 +387,7 @@ function getStringLiteralCompletionEntries(sourceFile: SourceFile, node: StringL // Get string literal completions from specialized signatures of the target // i.e. declare function f(a: 'A'); // f("/*completion position*/") - return argumentInfo && getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker) || fromContextualType(); + return argumentInfo && getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker) || fromContextualType(ContextFlags.None); } // falls through (is `require("")` or `require(""` or `import("")`) diff --git a/tests/cases/fourslash/completionsLiteralDirectlyInRestConstrainedToArrayType.ts b/tests/cases/fourslash/completionsLiteralDirectlyInRestConstrainedToArrayType.ts new file mode 100644 index 0000000000000..620e4fda5f24d --- /dev/null +++ b/tests/cases/fourslash/completionsLiteralDirectlyInRestConstrainedToArrayType.ts @@ -0,0 +1,9 @@ +/// +// @strict: true +//// +//// function fn(...values: T): T { return values; } +//// +//// const value1 = fn('/*1*/'); +//// const value2 = fn('value1', '/*2*/'); + +verify.completions({ marker: ["1", "2"], includes: [`value1`, `value2`, `value3`] })