A.10 Ambients
AmbientDeclaration: declare
AmbientVariableDeclaration declare
AmbientFunctionDeclaration declare
AmbientClassDeclaration declare
AmbientEnumDeclaration declare
AmbientNamespaceDeclaration
AmbientVariableDeclaration: var
AmbientBindingList ;
let
AmbientBindingList ;
const
AmbientBindingList ;
AmbientBindingList: AmbientBinding AmbientBindingList ,
AmbientBinding
AmbientBinding: BindingIdentifier TypeAnnotationopt
AmbientFunctionDeclaration: function
BindingIdentifier CallSignature ;
AmbientClassDeclaration: class
BindingIdentifier TypeParametersopt ClassHeritage {
AmbientClassBody }
AmbientClassBody: AmbientClassBodyElementsopt
AmbientClassBodyElements: AmbientClassBodyElement AmbientClassBodyElements AmbientClassBodyElement
AmbientClassBodyElement: AmbientConstructorDeclaration AmbientPropertyMemberDeclaration IndexSignature
AmbientConstructorDeclaration: constructor
(
ParameterListopt )
;
AmbientPropertyMemberDeclaration: AccessibilityModifieropt static
opt PropertyName TypeAnnotationopt ;
AccessibilityModifieropt static
opt PropertyName CallSignature ;
AmbientEnumDeclaration: EnumDeclaration
AmbientNamespaceDeclaration: namespace
IdentifierPath {
AmbientNamespaceBody }
AmbientNamespaceBody: AmbientNamespaceElementsopt
AmbientNamespaceElements: AmbientNamespaceElement AmbientNamespaceElements AmbientNamespaceElement
AmbientNamespaceElement: export
opt AmbientVariableDeclaration export
opt AmbientLexicalDeclaration export
opt AmbientFunctionDeclaration export
opt AmbientClassDeclaration export
opt InterfaceDeclaration export
opt AmbientEnumDeclaration export
opt AmbientNamespaceDeclaration export
opt ImportAliasDeclaration
AmbientModuleDeclaration: declare
module
StringLiteral {
DeclarationModule }