A.6 Classes

  ClassDeclaration: ( Modified )   classBindingIdentifieroptTypeParametersoptClassHeritage{ClassBody}

  ClassHeritage: ( Modified )   ClassExtendsClauseoptImplementsClauseopt

  ClassExtendsClause:   extendsClassType

  ClassType:   TypeReference

  ImplementsClause:   implementsClassOrInterfaceTypeList

  ClassElement: ( Modified )   ConstructorDeclaration   PropertyMemberDeclaration   IndexMemberDeclaration

  ConstructorDeclaration:   AccessibilityModifieroptconstructor(ParameterListopt){FunctionBody}   AccessibilityModifieroptconstructor(ParameterListopt);

  PropertyMemberDeclaration:   MemberVariableDeclaration   MemberFunctionDeclaration   MemberAccessorDeclaration

  MemberVariableDeclaration:   AccessibilityModifieroptstaticoptPropertyNameTypeAnnotationoptInitializeropt;

  MemberFunctionDeclaration:   AccessibilityModifieroptstaticoptPropertyNameCallSignature{FunctionBody}   AccessibilityModifieroptstaticoptPropertyNameCallSignature;

  MemberAccessorDeclaration:   AccessibilityModifieroptstaticoptGetAccessor   AccessibilityModifieroptstaticoptSetAccessor

  IndexMemberDeclaration:   IndexSignature;