diff --git a/src/services/completions.ts b/src/services/completions.ts
index f9fa8892e73..b75563e87ce 100644
--- a/src/services/completions.ts
+++ b/src/services/completions.ts
@@ -4607,9 +4607,9 @@ function getCompletionData(
return isDeclarationName(contextToken)
&& !isShorthandPropertyAssignment(contextToken.parent)
&& !isJsxAttribute(contextToken.parent)
- // Don't block completions if we're in `class C /**/` or `interface I /**/`, because we're *past* the end of the identifier and might want to complete `extends`.
- // If `contextToken !== previousToken`, this is `class C ex/**/ or `interface I ex/**/``.
- && !((isClassLike(contextToken.parent) || isInterfaceDeclaration(contextToken.parent)) && (contextToken !== previousToken || position > previousToken.end));
+ // Don't block completions if we're in `class C /**/`, `interface I /**/` or `` , because we're *past* the end of the identifier and might want to complete `extends`.
+ // If `contextToken !== previousToken`, this is `class C ex/**/`, `interface I ex/**/` or ``.
+ && !((isClassLike(contextToken.parent) || isInterfaceDeclaration(contextToken.parent) || isTypeParameterDeclaration(contextToken.parent)) && (contextToken !== previousToken || position > previousToken.end));
}
function isPreviousPropertyDeclarationTerminated(contextToken: Node, position: number) {
diff --git a/tests/cases/fourslash/extendsKeywordCompletion.ts b/tests/cases/fourslash/extendsKeywordCompletion1.ts
similarity index 100%
rename from tests/cases/fourslash/extendsKeywordCompletion.ts
rename to tests/cases/fourslash/extendsKeywordCompletion1.ts
diff --git a/tests/cases/fourslash/extendsKeywordCompletion2.ts b/tests/cases/fourslash/extendsKeywordCompletion2.ts
new file mode 100644
index 00000000000..caaa28d119b
--- /dev/null
+++ b/tests/cases/fourslash/extendsKeywordCompletion2.ts
@@ -0,0 +1,9 @@
+///
+
+////function f1() {}
+////function f2() {}
+
+verify.completions({
+ marker: ["1", "2"],
+ includes: [{ name: "extends", sortText: completion.SortText.GlobalsOrKeywords }]
+});