diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index b084107a93f..12f4b92ed34 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -45421,8 +45421,8 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { if (node.kind !== SyntaxKind.EnumDeclaration && node.kind !== SyntaxKind.TypeParameter) { return grammarErrorOnNode(node, Diagnostics.A_class_member_cannot_have_the_0_keyword, tokenToString(SyntaxKind.ConstKeyword)); } - if (node.kind === SyntaxKind.TypeParameter && !isFunctionLikeDeclaration(node.parent)) { - return grammarErrorOnNode(modifier, Diagnostics._0_modifier_can_only_appear_on_a_type_parameter_of_a_function_or_constructor, tokenToString(modifier.kind)); + if (node.kind === SyntaxKind.TypeParameter && !(isFunctionLikeDeclaration(node.parent) || isClassDeclaration(node.parent))) { + return grammarErrorOnNode(modifier, Diagnostics._0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class, tokenToString(modifier.kind)); } break; case SyntaxKind.OverrideKeyword: diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 13c183c59bb..f9bab8053ad 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -907,7 +907,7 @@ "category": "Error", "code": 1276 }, - "'{0}' modifier can only appear on a type parameter of a function or constructor": { + "'{0}' modifier can only appear on a type parameter of a function, method or class": { "category": "Error", "code": 1277 },