From 6f183482f807448b2708c79ad06fa89425657634 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Thu, 7 Jul 2022 15:38:09 -0400 Subject: [PATCH] chore: provide better parentPath typings --- .../src/misc.ts | 2 +- .../src/index.ts | 5 +- .../src/index.ts | 4 +- .../src/index.ts | 12 +- .../src/enum.ts | 5 +- packages/babel-traverse/src/path/index.ts | 8 +- .../scripts/generators/ast-types.js | 52 +- .../scripts/utils/stringifyValidator.js | 2 +- .../src/ast-types/generated/index.ts | 5770 +++++++++++++++++ 9 files changed, 5844 insertions(+), 16 deletions(-) diff --git a/packages/babel-helper-create-class-features-plugin/src/misc.ts b/packages/babel-helper-create-class-features-plugin/src/misc.ts index 9352f69dad1b..3908941dc0d6 100644 --- a/packages/babel-helper-create-class-features-plugin/src/misc.ts +++ b/packages/babel-helper-create-class-features-plugin/src/misc.ts @@ -122,7 +122,7 @@ export function extractComputedKeys( }; for (const computedPath of computedPaths) { const computedKey = computedPath.get("key"); - if (computedKey.isReferencedIdentifier()) { + if (computedKey.isIdentifier() && computedKey.isReferencedIdentifier()) { handleClassTDZ(computedKey, state); } else { computedKey.traverse(classFieldDefinitionEvaluationTDZVisitor, state); diff --git a/packages/babel-plugin-proposal-class-static-block/src/index.ts b/packages/babel-plugin-proposal-class-static-block/src/index.ts index ed596bd04468..120fa50e7e1a 100644 --- a/packages/babel-plugin-proposal-class-static-block/src/index.ts +++ b/packages/babel-plugin-proposal-class-static-block/src/index.ts @@ -49,7 +49,10 @@ export default declare(({ types: t, template, assertVersion }) => { const body = classBody.get("body"); for (const path of body) { if (path.isPrivate()) { - privateNames.add(path.get("key.id").node.name); + privateNames.add( + // @ts-expect-error TS can't infer that NodePath & NodePath equals to NodePath + path.get("key.id").node.name, + ); } } for (const path of body) { diff --git a/packages/babel-plugin-transform-block-scoping/src/index.ts b/packages/babel-plugin-transform-block-scoping/src/index.ts index bb927c6aca91..42f9132e7fa6 100644 --- a/packages/babel-plugin-transform-block-scoping/src/index.ts +++ b/packages/babel-plugin-transform-block-scoping/src/index.ts @@ -113,7 +113,9 @@ export default declare((api, opts: Options) => { }; }); -function ignoreBlock(path: NodePath) { +function ignoreBlock( + path: NodePath, +) { return t.isLoop(path.parent) || t.isCatchClause(path.parent); } diff --git a/packages/babel-plugin-transform-classes/src/index.ts b/packages/babel-plugin-transform-classes/src/index.ts index 052d6ab514ba..a5e1aa108944 100644 --- a/packages/babel-plugin-transform-classes/src/index.ts +++ b/packages/babel-plugin-transform-classes/src/index.ts @@ -5,7 +5,6 @@ import splitExportDeclaration from "@babel/helper-split-export-declaration"; import { types as t } from "@babel/core"; import globals from "globals"; import transformClass from "./transformClass"; -import type { Visitor, NodePath } from "@babel/traverse"; const getBuiltinClasses = (category: keyof typeof globals) => Object.keys(globals[category]).filter(name => /^[A-Z]/.test(name)); @@ -68,7 +67,7 @@ export default declare((api, options: Options) => { VISITED.add(node); - path.replaceWith( + const [replacedPath] = path.replaceWith( transformClass(path, state.file, builtinClasses, loose, { setClassMethods, constantSuper, @@ -77,16 +76,15 @@ export default declare((api, options: Options) => { }), ); - if (path.isCallExpression()) { - annotateAsPure(path); - // todo: improve babel types - const callee = path.get("callee") as unknown as NodePath; + if (replacedPath.isCallExpression()) { + annotateAsPure(replacedPath); + const callee = replacedPath.get("callee"); if (callee.isArrowFunctionExpression()) { // This is an IIFE, so we don't need to worry about the noNewArrows assumption callee.arrowFunctionToExpression(); } } }, - } as Visitor, + }, }; }); diff --git a/packages/babel-plugin-transform-typescript/src/enum.ts b/packages/babel-plugin-transform-typescript/src/enum.ts index 9a3234286f69..b39559d54a0b 100644 --- a/packages/babel-plugin-transform-typescript/src/enum.ts +++ b/packages/babel-plugin-transform-typescript/src/enum.ts @@ -156,7 +156,10 @@ export function translateEnumValues( } else { const initializerPath = memberPath.get("initializer"); - if (initializerPath.isReferencedIdentifier()) { + if ( + initializerPath.isIdentifier() && + initializerPath.isReferencedIdentifier() + ) { ReferencedIdentifier(initializerPath, { t, seen, diff --git a/packages/babel-traverse/src/path/index.ts b/packages/babel-traverse/src/path/index.ts index ec9dceeaf560..afebdc9cc582 100644 --- a/packages/babel-traverse/src/path/index.ts +++ b/packages/babel-traverse/src/path/index.ts @@ -32,7 +32,7 @@ export const SHOULD_STOP = 1 << 1; export const SHOULD_SKIP = 1 << 2; class NodePath { - constructor(hub: HubInterface, parent: t.Node) { + constructor(hub: HubInterface, parent: t.ParentMaps[T["type"]]) { this.parent = parent; this.hub = hub; this.data = null; @@ -41,7 +41,7 @@ class NodePath { this.scope = null; } - declare parent: t.Node; + declare parent: t.ParentMaps[T["type"]]; declare hub: HubInterface; declare data: Record; // TraversalContext is configured by setContext @@ -54,7 +54,9 @@ class NodePath { // this.shouldSkip = false; this.shouldStop = false; this.removed = false; _traverseFlags: number = 0; skipKeys: any = null; - parentPath: NodePath | null = null; + parentPath: t.ParentMaps[T["type"]] extends null + ? null + : NodePath | null = null; container: t.Node | Array | null = null; listKey: string | null = null; key: string | number | null = null; diff --git a/packages/babel-types/scripts/generators/ast-types.js b/packages/babel-types/scripts/generators/ast-types.js index 901e3d2d56d3..92eb055e97c6 100644 --- a/packages/babel-types/scripts/generators/ast-types.js +++ b/packages/babel-types/scripts/generators/ast-types.js @@ -1,5 +1,38 @@ import * as t from "../../lib/index.js"; -import stringifyValidator from "../utils/stringifyValidator.js"; +import stringifyValidator, { + isValueType, +} from "../utils/stringifyValidator.js"; + +const parentMaps = new Map([["File", new Set(["null"])]]); + +function registerParentMaps(parent, nodes) { + for (const node of nodes) { + if (!parentMaps.has(node)) { + parentMaps.set(node, new Set()); + } + parentMaps.get(node).add(parent); + } +} + +function getNodeTypesFromValidator(validator) { + if (validator === undefined) return []; + if (validator.each) { + return getNodeTypesFromValidator(validator.each); + } + if (validator.chainOf) { + return getNodeTypesFromValidator(validator.chainOf[1]); + } + let nodeTypes = []; + if (validator.oneOfNodeTypes) { + nodeTypes = validator.oneOfNodeTypes; + } + if (validator.oneOfNodeOrValueTypes) { + nodeTypes = validator.oneOfNodeOrValueTypes.filter( + type => !isValueType(type) + ); + } + return nodeTypes.flatMap(type => t.FLIPPED_ALIAS_KEYS[type] ?? type); +} export default function generateAstTypes() { let code = `// NOTE: This file is autogenerated. Do not modify. @@ -87,6 +120,8 @@ export type Node = ${t.TYPES.filter(k => !t.FLIPPED_ALIAS_KEYS[k]) } else { struct.push(`"${fieldName}"${optional}: ${typeAnnotation};`); } + + registerParentMaps(type, getNodeTypesFromValidator(field.validate)); }); code += `export interface ${type} extends BaseNode { @@ -123,6 +158,21 @@ export interface ${deprecatedAlias[type]} extends BaseNode { t.DEPRECATED_KEYS ).join(" | ")}\n\n`; + code += "export interface ParentMaps {\n"; + + registerParentMaps("null", [...Object.keys(t.DEPRECATED_KEYS)]); + // todo: provide a better parent type for Placeholder, currently it acts + // as a catch-all parent type for an abstract NodePath, s.t NodePath.parent must + // be a Node if type has not been specified + registerParentMaps("Node", ["Placeholder"]); + + const parentMapsKeys = [...parentMaps.keys()].sort(); + for (const type of parentMapsKeys) { + const deduplicated = [...parentMaps.get(type)].sort(); + code += ` ${type}: ${deduplicated.join(" | ")};\n`; + } + code += "}\n\n"; + return code; } diff --git a/packages/babel-types/scripts/utils/stringifyValidator.js b/packages/babel-types/scripts/utils/stringifyValidator.js index 4b8d29c12c30..58d9e5ede0a3 100644 --- a/packages/babel-types/scripts/utils/stringifyValidator.js +++ b/packages/babel-types/scripts/utils/stringifyValidator.js @@ -61,6 +61,6 @@ export default function stringifyValidator(validator, nodePrefix) { * Heuristic to decide whether or not the given type is a value type (eg. "null") * or a Node type (eg. "Expression"). */ -function isValueType(type) { +export function isValueType(type) { return type.charAt(0).toLowerCase() === type.charAt(0); } diff --git a/packages/babel-types/src/ast-types/generated/index.ts b/packages/babel-types/src/ast-types/generated/index.ts index 7547fbdbd9da..e9d9906eb302 100644 --- a/packages/babel-types/src/ast-types/generated/index.ts +++ b/packages/babel-types/src/ast-types/generated/index.ts @@ -2781,3 +2781,5773 @@ export type DeprecatedAliases = | RegexLiteral | RestProperty | SpreadProperty; + +export interface ParentMaps { + AnyTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + ArgumentPlaceholder: CallExpression | NewExpression | OptionalCallExpression; + ArrayExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + ArrayPattern: + | ArrayPattern + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | CatchClause + | ClassMethod + | ClassPrivateMethod + | ForInStatement + | ForOfStatement + | FunctionDeclaration + | FunctionExpression + | ObjectMethod + | ObjectProperty + | RestElement + | TSDeclareFunction + | TSDeclareMethod + | VariableDeclarator; + ArrayTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + ArrowFunctionExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + AssignmentExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + AssignmentPattern: + | ArrayPattern + | ArrowFunctionExpression + | AssignmentExpression + | ClassMethod + | ClassPrivateMethod + | ForInStatement + | ForOfStatement + | FunctionDeclaration + | FunctionExpression + | ObjectMethod + | ObjectProperty + | RestElement + | TSDeclareFunction + | TSDeclareMethod + | TSParameterProperty + | VariableDeclarator; + AwaitExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + BigIntLiteral: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSLiteralType + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + BinaryExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + BindExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + BlockStatement: + | ArrowFunctionExpression + | BlockStatement + | CatchClause + | ClassMethod + | ClassPrivateMethod + | DeclareModule + | DoExpression + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | FunctionDeclaration + | FunctionExpression + | IfStatement + | LabeledStatement + | ObjectMethod + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | TryStatement + | WhileStatement + | WithStatement; + BooleanLiteral: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | EnumBooleanMember + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSLiteralType + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + BooleanLiteralTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + BooleanTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + BreakStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + CallExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + CatchClause: TryStatement; + ClassAccessorProperty: ClassBody; + ClassBody: ClassDeclaration | ClassExpression; + ClassDeclaration: + | BlockStatement + | DoWhileStatement + | ExportDefaultDeclaration + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + ClassExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + ClassImplements: + | ClassDeclaration + | ClassExpression + | DeclareClass + | DeclareExportDeclaration + | DeclareInterface + | DeclaredPredicate + | InterfaceDeclaration; + ClassMethod: ClassBody; + ClassPrivateMethod: ClassBody; + ClassPrivateProperty: ClassBody; + ClassProperty: ClassBody; + CommentBlock: File; + CommentLine: File; + ConditionalExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + ContinueStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + DebuggerStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + DecimalLiteral: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + DeclareClass: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + DeclareExportAllDeclaration: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + DeclareExportDeclaration: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + DeclareFunction: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + DeclareInterface: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + DeclareModule: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + DeclareModuleExports: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + DeclareOpaqueType: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + DeclareTypeAlias: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + DeclareVariable: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + DeclaredPredicate: + | ArrowFunctionExpression + | DeclareExportDeclaration + | DeclareFunction + | DeclaredPredicate + | FunctionDeclaration + | FunctionExpression; + Decorator: + | ArrayPattern + | AssignmentPattern + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateMethod + | ClassPrivateProperty + | ClassProperty + | Identifier + | ObjectMethod + | ObjectPattern + | ObjectProperty + | RestElement + | TSDeclareMethod + | TSParameterProperty; + Directive: BlockStatement | Program; + DirectiveLiteral: Directive; + DoExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + DoWhileStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + EmptyStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + EmptyTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + EnumBooleanBody: + | DeclareExportDeclaration + | DeclaredPredicate + | EnumDeclaration; + EnumBooleanMember: + | DeclareExportDeclaration + | DeclaredPredicate + | EnumBooleanBody; + EnumDeclaration: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + EnumDefaultedMember: + | DeclareExportDeclaration + | DeclaredPredicate + | EnumStringBody + | EnumSymbolBody; + EnumNumberBody: + | DeclareExportDeclaration + | DeclaredPredicate + | EnumDeclaration; + EnumNumberMember: + | DeclareExportDeclaration + | DeclaredPredicate + | EnumNumberBody; + EnumStringBody: + | DeclareExportDeclaration + | DeclaredPredicate + | EnumDeclaration; + EnumStringMember: + | DeclareExportDeclaration + | DeclaredPredicate + | EnumStringBody; + EnumSymbolBody: + | DeclareExportDeclaration + | DeclaredPredicate + | EnumDeclaration; + ExistsTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + ExportAllDeclaration: + | BlockStatement + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + ExportDefaultDeclaration: + | BlockStatement + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + ExportDefaultSpecifier: ExportNamedDeclaration; + ExportNamedDeclaration: + | BlockStatement + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + ExportNamespaceSpecifier: DeclareExportDeclaration | ExportNamedDeclaration; + ExportSpecifier: DeclareExportDeclaration | ExportNamedDeclaration; + ExpressionStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + File: null; + ForInStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + ForOfStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + ForStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + FunctionDeclaration: + | BlockStatement + | DoWhileStatement + | ExportDefaultDeclaration + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + FunctionExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + FunctionTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + FunctionTypeParam: + | DeclareExportDeclaration + | DeclaredPredicate + | FunctionTypeAnnotation; + GenericTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + Identifier: + | ArrayExpression + | ArrayPattern + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | BreakStatement + | CallExpression + | CatchClause + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassImplements + | ClassMethod + | ClassPrivateMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | ContinueStatement + | DeclareClass + | DeclareFunction + | DeclareInterface + | DeclareModule + | DeclareOpaqueType + | DeclareTypeAlias + | DeclareVariable + | Decorator + | DoWhileStatement + | EnumBooleanMember + | EnumDeclaration + | EnumDefaultedMember + | EnumNumberMember + | EnumStringMember + | ExportDefaultDeclaration + | ExportDefaultSpecifier + | ExportNamespaceSpecifier + | ExportSpecifier + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | FunctionDeclaration + | FunctionExpression + | FunctionTypeParam + | GenericTypeAnnotation + | IfStatement + | ImportAttribute + | ImportDefaultSpecifier + | ImportNamespaceSpecifier + | ImportSpecifier + | InterfaceDeclaration + | InterfaceExtends + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LabeledStatement + | LogicalExpression + | MemberExpression + | MetaProperty + | NewExpression + | ObjectMethod + | ObjectProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | OpaqueType + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | Placeholder + | PrivateName + | QualifiedTypeIdentifier + | RestElement + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSCallSignatureDeclaration + | TSConstructSignatureDeclaration + | TSConstructorType + | TSDeclareFunction + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSExpressionWithTypeArguments + | TSFunctionType + | TSImportEqualsDeclaration + | TSImportType + | TSIndexSignature + | TSInstantiationExpression + | TSInterfaceDeclaration + | TSMethodSignature + | TSModuleDeclaration + | TSNamedTupleMember + | TSNamespaceExportDeclaration + | TSNonNullExpression + | TSParameterProperty + | TSPropertySignature + | TSQualifiedName + | TSTypeAliasDeclaration + | TSTypeAssertion + | TSTypePredicate + | TSTypeQuery + | TSTypeReference + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeAlias + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + IfStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + Import: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + ImportAttribute: + | ExportAllDeclaration + | ExportNamedDeclaration + | ImportDeclaration; + ImportDeclaration: + | BlockStatement + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + ImportDefaultSpecifier: ImportDeclaration; + ImportNamespaceSpecifier: ImportDeclaration; + ImportSpecifier: ImportDeclaration; + IndexedAccessType: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + InferredPredicate: + | ArrowFunctionExpression + | DeclareExportDeclaration + | DeclaredPredicate + | FunctionDeclaration + | FunctionExpression; + InterfaceDeclaration: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + InterfaceExtends: + | ClassDeclaration + | ClassExpression + | DeclareClass + | DeclareExportDeclaration + | DeclareInterface + | DeclaredPredicate + | InterfaceDeclaration + | InterfaceTypeAnnotation; + InterfaceTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + InterpreterDirective: Program; + IntersectionTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + JSXAttribute: JSXOpeningElement; + JSXClosingElement: JSXElement; + JSXClosingFragment: JSXFragment; + JSXElement: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXAttribute + | JSXElement + | JSXExpressionContainer + | JSXFragment + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + JSXEmptyExpression: JSXExpressionContainer; + JSXExpressionContainer: JSXAttribute | JSXElement | JSXFragment; + JSXFragment: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXAttribute + | JSXElement + | JSXExpressionContainer + | JSXFragment + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + JSXIdentifier: + | JSXAttribute + | JSXClosingElement + | JSXMemberExpression + | JSXNamespacedName + | JSXOpeningElement; + JSXMemberExpression: + | JSXClosingElement + | JSXMemberExpression + | JSXOpeningElement; + JSXNamespacedName: + | CallExpression + | JSXAttribute + | JSXClosingElement + | JSXOpeningElement + | NewExpression + | OptionalCallExpression; + JSXOpeningElement: JSXElement; + JSXOpeningFragment: JSXFragment; + JSXSpreadAttribute: JSXOpeningElement; + JSXSpreadChild: JSXElement | JSXFragment; + JSXText: JSXElement | JSXFragment; + LabeledStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + LogicalExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + MemberExpression: + | ArrayExpression + | ArrayPattern + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | RestElement + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + MetaProperty: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + MixedTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + ModuleExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + NewExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + Noop: + | ArrayPattern + | ArrowFunctionExpression + | AssignmentPattern + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateMethod + | ClassPrivateProperty + | ClassProperty + | FunctionDeclaration + | FunctionExpression + | Identifier + | ObjectMethod + | ObjectPattern + | RestElement + | TSDeclareFunction + | TSDeclareMethod; + NullLiteral: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + NullLiteralTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + NullableTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + NumberLiteral: null; + NumberLiteralTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + NumberTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + NumericLiteral: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | EnumNumberMember + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSLiteralType + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + ObjectExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + ObjectMethod: ObjectExpression; + ObjectPattern: + | ArrayPattern + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | CatchClause + | ClassMethod + | ClassPrivateMethod + | ForInStatement + | ForOfStatement + | FunctionDeclaration + | FunctionExpression + | ObjectMethod + | ObjectProperty + | RestElement + | TSDeclareFunction + | TSDeclareMethod + | VariableDeclarator; + ObjectProperty: ObjectExpression | ObjectPattern | RecordExpression; + ObjectTypeAnnotation: + | ArrayTypeAnnotation + | DeclareClass + | DeclareExportDeclaration + | DeclareInterface + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | InterfaceDeclaration + | InterfaceTypeAnnotation + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + ObjectTypeCallProperty: + | DeclareExportDeclaration + | DeclaredPredicate + | ObjectTypeAnnotation; + ObjectTypeIndexer: + | DeclareExportDeclaration + | DeclaredPredicate + | ObjectTypeAnnotation; + ObjectTypeInternalSlot: + | DeclareExportDeclaration + | DeclaredPredicate + | ObjectTypeAnnotation; + ObjectTypeProperty: + | DeclareExportDeclaration + | DeclaredPredicate + | ObjectTypeAnnotation; + ObjectTypeSpreadProperty: + | DeclareExportDeclaration + | DeclaredPredicate + | ObjectTypeAnnotation; + OpaqueType: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + OptionalCallExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + OptionalIndexedAccessType: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + OptionalMemberExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + ParenthesizedExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + PipelineBareFunction: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + PipelinePrimaryTopicReference: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + PipelineTopicExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + Placeholder: Node; + PrivateName: + | BinaryExpression + | ClassAccessorProperty + | ClassPrivateMethod + | ClassPrivateProperty + | MemberExpression + | ObjectProperty; + Program: File | ModuleExpression; + QualifiedTypeIdentifier: + | DeclareExportDeclaration + | DeclaredPredicate + | GenericTypeAnnotation + | InterfaceExtends + | QualifiedTypeIdentifier; + RecordExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + RegExpLiteral: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + RegexLiteral: null; + RestElement: + | ArrayPattern + | ArrowFunctionExpression + | AssignmentExpression + | ClassMethod + | ClassPrivateMethod + | ForInStatement + | ForOfStatement + | FunctionDeclaration + | FunctionExpression + | ObjectMethod + | ObjectPattern + | ObjectProperty + | RestElement + | TSCallSignatureDeclaration + | TSConstructSignatureDeclaration + | TSConstructorType + | TSDeclareFunction + | TSDeclareMethod + | TSFunctionType + | TSMethodSignature + | VariableDeclarator; + RestProperty: null; + ReturnStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + SequenceExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + SpreadElement: + | ArrayExpression + | CallExpression + | NewExpression + | ObjectExpression + | OptionalCallExpression + | RecordExpression + | TupleExpression; + SpreadProperty: null; + StaticBlock: ClassBody; + StringLiteral: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | DeclareExportAllDeclaration + | DeclareExportDeclaration + | DeclareModule + | Decorator + | DoWhileStatement + | EnumStringMember + | ExportAllDeclaration + | ExportDefaultDeclaration + | ExportNamedDeclaration + | ExportSpecifier + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | ImportAttribute + | ImportDeclaration + | ImportSpecifier + | JSXAttribute + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | ObjectTypeProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSExternalModuleReference + | TSImportType + | TSInstantiationExpression + | TSLiteralType + | TSMethodSignature + | TSModuleDeclaration + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + StringLiteralTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + StringTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + Super: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + SwitchCase: SwitchStatement; + SwitchStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + SymbolTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + TSAnyKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSArrayType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSAsExpression: + | ArrayExpression + | ArrayPattern + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | RestElement + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + TSBigIntKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSBooleanKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSCallSignatureDeclaration: TSInterfaceBody | TSTypeLiteral; + TSConditionalType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSConstructSignatureDeclaration: TSInterfaceBody | TSTypeLiteral; + TSConstructorType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSDeclareFunction: + | BlockStatement + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + TSDeclareMethod: ClassBody; + TSEnumDeclaration: + | BlockStatement + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + TSEnumMember: TSEnumDeclaration; + TSExportAssignment: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + TSExpressionWithTypeArguments: + | ClassDeclaration + | ClassExpression + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSInterfaceDeclaration + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSExternalModuleReference: TSImportEqualsDeclaration; + TSFunctionType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSImportEqualsDeclaration: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + TSImportType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSTypeQuery + | TSUnionType + | TemplateLiteral; + TSIndexSignature: ClassBody | TSInterfaceBody | TSTypeLiteral; + TSIndexedAccessType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSInferType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSInstantiationExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + TSInterfaceBody: TSInterfaceDeclaration; + TSInterfaceDeclaration: + | BlockStatement + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + TSIntersectionType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSIntrinsicKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSLiteralType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSMappedType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSMethodSignature: TSInterfaceBody | TSTypeLiteral; + TSModuleBlock: TSModuleDeclaration; + TSModuleDeclaration: + | BlockStatement + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | TSModuleDeclaration + | WhileStatement + | WithStatement; + TSNamedTupleMember: TSTupleType; + TSNamespaceExportDeclaration: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + TSNeverKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSNonNullExpression: + | ArrayExpression + | ArrayPattern + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | RestElement + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + TSNullKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSNumberKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSObjectKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSOptionalType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSParameterProperty: + | ArrayPattern + | AssignmentExpression + | ClassMethod + | ClassPrivateMethod + | ForInStatement + | ForOfStatement + | RestElement + | TSDeclareMethod + | VariableDeclarator; + TSParenthesizedType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSPropertySignature: TSInterfaceBody | TSTypeLiteral; + TSQualifiedName: + | TSExpressionWithTypeArguments + | TSImportEqualsDeclaration + | TSImportType + | TSQualifiedName + | TSTypeQuery + | TSTypeReference; + TSRestType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSStringKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSSymbolKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSThisType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSTypePredicate + | TSUnionType + | TemplateLiteral; + TSTupleType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSTypeAliasDeclaration: + | BlockStatement + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + TSTypeAnnotation: + | ArrayPattern + | ArrowFunctionExpression + | AssignmentPattern + | ClassAccessorProperty + | ClassMethod + | ClassPrivateMethod + | ClassPrivateProperty + | ClassProperty + | FunctionDeclaration + | FunctionExpression + | Identifier + | ObjectMethod + | ObjectPattern + | RestElement + | TSCallSignatureDeclaration + | TSConstructSignatureDeclaration + | TSConstructorType + | TSDeclareFunction + | TSDeclareMethod + | TSFunctionType + | TSIndexSignature + | TSMethodSignature + | TSPropertySignature + | TSTypePredicate; + TSTypeAssertion: + | ArrayExpression + | ArrayPattern + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | RestElement + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + TSTypeLiteral: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSTypeOperator: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSTypeParameter: TSInferType | TSMappedType | TSTypeParameterDeclaration; + TSTypeParameterDeclaration: + | ArrowFunctionExpression + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateMethod + | FunctionDeclaration + | FunctionExpression + | ObjectMethod + | TSCallSignatureDeclaration + | TSConstructSignatureDeclaration + | TSConstructorType + | TSDeclareFunction + | TSDeclareMethod + | TSFunctionType + | TSInterfaceDeclaration + | TSMethodSignature + | TSTypeAliasDeclaration; + TSTypeParameterInstantiation: + | CallExpression + | ClassDeclaration + | ClassExpression + | JSXOpeningElement + | NewExpression + | OptionalCallExpression + | TSExpressionWithTypeArguments + | TSImportType + | TSInstantiationExpression + | TSTypeQuery + | TSTypeReference + | TaggedTemplateExpression; + TSTypePredicate: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSTypeQuery: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSTypeReference: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSUndefinedKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSUnionType: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSUnknownKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TSVoidKeyword: + | TSArrayType + | TSAsExpression + | TSConditionalType + | TSIndexedAccessType + | TSIntersectionType + | TSMappedType + | TSNamedTupleMember + | TSOptionalType + | TSParenthesizedType + | TSRestType + | TSTupleType + | TSTypeAliasDeclaration + | TSTypeAnnotation + | TSTypeAssertion + | TSTypeOperator + | TSTypeParameter + | TSTypeParameterInstantiation + | TSUnionType + | TemplateLiteral; + TaggedTemplateExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + TemplateElement: TemplateLiteral; + TemplateLiteral: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSLiteralType + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + ThisExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + ThisTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + ThrowStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + TopicReference: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + TryStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + TupleExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + TupleTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + TypeAlias: + | BlockStatement + | DeclareExportDeclaration + | DeclaredPredicate + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + TypeAnnotation: + | ArrayPattern + | ArrowFunctionExpression + | AssignmentPattern + | ClassAccessorProperty + | ClassMethod + | ClassPrivateMethod + | ClassPrivateProperty + | ClassProperty + | DeclareExportDeclaration + | DeclareModuleExports + | DeclaredPredicate + | FunctionDeclaration + | FunctionExpression + | Identifier + | ObjectMethod + | ObjectPattern + | RestElement + | TypeCastExpression + | TypeParameter; + TypeCastExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | DeclareExportDeclaration + | DeclaredPredicate + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + TypeParameter: + | DeclareExportDeclaration + | DeclaredPredicate + | TypeParameterDeclaration; + TypeParameterDeclaration: + | ArrowFunctionExpression + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateMethod + | DeclareClass + | DeclareExportDeclaration + | DeclareInterface + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionDeclaration + | FunctionExpression + | FunctionTypeAnnotation + | InterfaceDeclaration + | ObjectMethod + | OpaqueType + | TypeAlias; + TypeParameterInstantiation: + | CallExpression + | ClassDeclaration + | ClassExpression + | ClassImplements + | DeclareExportDeclaration + | DeclaredPredicate + | GenericTypeAnnotation + | InterfaceExtends + | JSXOpeningElement + | NewExpression + | OptionalCallExpression + | TaggedTemplateExpression; + TypeofTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + UnaryExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSLiteralType + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + UnionTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + UpdateExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; + V8IntrinsicIdentifier: CallExpression | NewExpression; + VariableDeclaration: + | BlockStatement + | DoWhileStatement + | ExportNamedDeclaration + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + VariableDeclarator: VariableDeclaration; + Variance: + | ClassAccessorProperty + | ClassPrivateProperty + | ClassProperty + | DeclareExportDeclaration + | DeclaredPredicate + | ObjectTypeIndexer + | ObjectTypeProperty + | TypeParameter; + VoidTypeAnnotation: + | ArrayTypeAnnotation + | DeclareExportDeclaration + | DeclareOpaqueType + | DeclareTypeAlias + | DeclaredPredicate + | FunctionTypeAnnotation + | FunctionTypeParam + | IndexedAccessType + | IntersectionTypeAnnotation + | NullableTypeAnnotation + | ObjectTypeCallProperty + | ObjectTypeIndexer + | ObjectTypeInternalSlot + | ObjectTypeProperty + | ObjectTypeSpreadProperty + | OpaqueType + | OptionalIndexedAccessType + | TupleTypeAnnotation + | TypeAlias + | TypeAnnotation + | TypeParameter + | TypeParameterInstantiation + | TypeofTypeAnnotation + | UnionTypeAnnotation; + WhileStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + WithStatement: + | BlockStatement + | DoWhileStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | LabeledStatement + | Program + | StaticBlock + | SwitchCase + | TSModuleBlock + | WhileStatement + | WithStatement; + YieldExpression: + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BinaryExpression + | BindExpression + | CallExpression + | ClassAccessorProperty + | ClassDeclaration + | ClassExpression + | ClassMethod + | ClassPrivateProperty + | ClassProperty + | ConditionalExpression + | Decorator + | DoWhileStatement + | ExportDefaultDeclaration + | ExpressionStatement + | ForInStatement + | ForOfStatement + | ForStatement + | IfStatement + | JSXExpressionContainer + | JSXSpreadAttribute + | JSXSpreadChild + | LogicalExpression + | MemberExpression + | NewExpression + | ObjectMethod + | ObjectProperty + | OptionalCallExpression + | OptionalMemberExpression + | ParenthesizedExpression + | PipelineBareFunction + | PipelineTopicExpression + | ReturnStatement + | SequenceExpression + | SpreadElement + | SwitchCase + | SwitchStatement + | TSAsExpression + | TSDeclareMethod + | TSEnumDeclaration + | TSEnumMember + | TSExportAssignment + | TSInstantiationExpression + | TSMethodSignature + | TSNonNullExpression + | TSPropertySignature + | TSTypeAssertion + | TaggedTemplateExpression + | TemplateLiteral + | ThrowStatement + | TupleExpression + | TypeCastExpression + | UnaryExpression + | UpdateExpression + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; +}