diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 813dc5c6345..648439f06b7 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -27349,7 +27349,7 @@ namespace ts { } switch (modifier.kind) { case SyntaxKind.ConstKeyword: - if (node.kind !== SyntaxKind.EnumDeclaration && node.parent.kind === SyntaxKind.ClassDeclaration) { + if (node.kind !== SyntaxKind.EnumDeclaration) { return grammarErrorOnNode(node, Diagnostics.A_class_member_cannot_have_the_0_keyword, tokenToString(SyntaxKind.ConstKeyword)); } break; diff --git a/tests/baselines/reference/constInClassExpression.errors.txt b/tests/baselines/reference/constInClassExpression.errors.txt new file mode 100644 index 00000000000..b3b66cba3a5 --- /dev/null +++ b/tests/baselines/reference/constInClassExpression.errors.txt @@ -0,0 +1,10 @@ +tests/cases/compiler/constInClassExpression.ts(2,11): error TS1248: A class member cannot have the 'const' keyword. + + +==== tests/cases/compiler/constInClassExpression.ts (1 errors) ==== + let C = class { + const a = 4; + ~ +!!! error TS1248: A class member cannot have the 'const' keyword. + }; + \ No newline at end of file diff --git a/tests/baselines/reference/constInClassExpression.js b/tests/baselines/reference/constInClassExpression.js new file mode 100644 index 00000000000..1da4605687a --- /dev/null +++ b/tests/baselines/reference/constInClassExpression.js @@ -0,0 +1,13 @@ +//// [constInClassExpression.ts] +let C = class { + const a = 4; +}; + + +//// [constInClassExpression.js] +var C = /** @class */ (function () { + function class_1() { + this.a = 4; + } + return class_1; +}()); diff --git a/tests/baselines/reference/constInClassExpression.symbols b/tests/baselines/reference/constInClassExpression.symbols new file mode 100644 index 00000000000..7468772edfb --- /dev/null +++ b/tests/baselines/reference/constInClassExpression.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/constInClassExpression.ts === +let C = class { +>C : Symbol(C, Decl(constInClassExpression.ts, 0, 3)) + + const a = 4; +>a : Symbol(C.a, Decl(constInClassExpression.ts, 0, 15)) + +}; + diff --git a/tests/baselines/reference/constInClassExpression.types b/tests/baselines/reference/constInClassExpression.types new file mode 100644 index 00000000000..1efe8527e04 --- /dev/null +++ b/tests/baselines/reference/constInClassExpression.types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/constInClassExpression.ts === +let C = class { +>C : typeof C +>class { const a = 4;} : typeof C + + const a = 4; +>a : number +>4 : 4 + +}; + diff --git a/tests/cases/compiler/constInClassExpression.ts b/tests/cases/compiler/constInClassExpression.ts new file mode 100644 index 00000000000..b00b085e079 --- /dev/null +++ b/tests/cases/compiler/constInClassExpression.ts @@ -0,0 +1,3 @@ +let C = class { + const a = 4; +};