Handle ! following a keyword in isClassMemberStart (#20617)

* Handle `!` following a keyword in isClassMemberStart

* Fix test
This commit is contained in:
Andy 2017-12-11 09:45:36 -08:00 committed by GitHub
parent b629ff4204
commit 484758a3d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 32 additions and 0 deletions

View File

@ -5462,6 +5462,7 @@ namespace ts {
switch (token()) {
case SyntaxKind.OpenParenToken: // Method declaration
case SyntaxKind.LessThanToken: // Generic Method declaration
case SyntaxKind.ExclamationToken: // Non-null assertion on property name
case SyntaxKind.ColonToken: // Type Annotation for declaration
case SyntaxKind.EqualsToken: // Initializer for declaration
case SyntaxKind.QuestionToken: // Not valid, but permitted so that it gets caught later on.

View File

@ -0,0 +1,12 @@
//// [parserIsClassMemberStart.ts]
class C {
type!: number;
}
//// [parserIsClassMemberStart.js]
var C = /** @class */ (function () {
function C() {
}
return C;
}());

View File

@ -0,0 +1,8 @@
=== tests/cases/compiler/parserIsClassMemberStart.ts ===
class C {
>C : Symbol(C, Decl(parserIsClassMemberStart.ts, 0, 0))
type!: number;
>type : Symbol(C.type, Decl(parserIsClassMemberStart.ts, 0, 9))
}

View File

@ -0,0 +1,8 @@
=== tests/cases/compiler/parserIsClassMemberStart.ts ===
class C {
>C : C
type!: number;
>type : number
}

View File

@ -0,0 +1,3 @@
class C {
type!: number;
}