@babel/types
This module contains methods for building ASTs manually and for checking the types of AST nodes.
Install
npm install --save-dev @babel/types
API
anyTypeAnnotation
t.anyTypeAnnotation();
See also t.isAnyTypeAnnotation(node, opts) and t.assertAnyTypeAnnotation(node, opts).
Aliases: Flow, FlowType, FlowBaseAnnotation
argumentPlaceholder
t.argumentPlaceholder();
See also t.isArgumentPlaceholder(node, opts) and t.assertArgumentPlaceholder(node, opts).
arrayExpression
t.arrayExpression(elements);
See also t.isArrayExpression(node, opts) and t.assertArrayExpression(node, opts).
AST Node ArrayExpression shape:
elements:Array<null | Expression | SpreadElement>(default:[])
Aliases: Expression
arrayPattern
t.arrayPattern(elements);
See also t.isArrayPattern(node, opts) and t.assertArrayPattern(node, opts).
AST Node ArrayPattern shape:
elements:Array<null | PatternLike>(required)decorators:Array<Decorator>(default:null, excluded from builder function)typeAnnotation:TypeAnnotation | TSTypeAnnotation | Noop(default:null, excluded from builder function)
Aliases: Pattern, PatternLike, LVal
arrayTypeAnnotation
t.arrayTypeAnnotation(elementType);
See also t.isArrayTypeAnnotation(node, opts) and t.assertArrayTypeAnnotation(node, opts).
AST Node ArrayTypeAnnotation shape:
elementType:FlowType(required)
Aliases: Flow, FlowType
arrowFunctionExpression
t.arrowFunctionExpression(params, body, async);
See also t.isArrowFunctionExpression(node, opts) and t.assertArrowFunctionExpression(node, opts).
AST Node ArrowFunctionExpression shape:
params:Array<Identifier | Pattern | RestElement | TSParameterProperty>(required)body:BlockStatement | Expression(required)async:boolean(default:false)expression:boolean(required)generator:boolean(default:false, excluded from builder function)returnType:TypeAnnotation | TSTypeAnnotation | Noop(default:null, excluded from builder function)typeParameters:TypeParameterDeclaration | TSTypeParameterDeclaration | Noop(default:null, excluded from builder function)
Aliases: Scopable, Function, BlockParent, FunctionParent, Expression, Pureish
assignmentExpression
t.assignmentExpression(operator, left, right);
See also t.isAssignmentExpression(node, opts) and t.assertAssignmentExpression(node, opts).
AST Node AssignmentExpression shape:
operator:string(required)left:LVal(required)right:Expression(required)
Aliases: Expression
assignmentPattern
t.assignmentPattern(left, right);
See also t.isAssignmentPattern(node, opts) and t.assertAssignmentPattern(node, opts).
AST Node AssignmentPattern shape:
left:Identifier | ObjectPattern | ArrayPattern | MemberExpression(required)right:Expression(required)decorators:Array<Decorator>(default:null, excluded from builder function)typeAnnotation:TypeAnnotation | TSTypeAnnotation | Noop(default:null, excluded from builder function)
Aliases: Pattern, PatternLike, LVal
awaitExpression
t.awaitExpression(argument);
See also t.isAwaitExpression(node, opts) and t.assertAwaitExpression(node, opts).
AST Node AwaitExpression shape:
argument:Expression(required)
Aliases: Expression, Terminatorless
bigIntLiteral
t.bigIntLiteral(value);
See also t.isBigIntLiteral(node, opts) and t.assertBigIntLiteral(node, opts).
AST Node BigIntLiteral shape:
value:string(required)
Aliases: Expression, Pureish, Literal, Immutable
binaryExpression
t.binaryExpression(operator, left, right);
See also t.isBinaryExpression(node, opts) and t.assertBinaryExpression(node, opts).
AST Node BinaryExpression shape:
operator:"+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<="(required)left:Expression | PrivateName(required)right:Expression(required)
Aliases: Binary, Expression
bindExpression
t.bindExpression(object, callee);
See also t.isBindExpression(node, opts) and t.assertBindExpression(node, opts).
AST Node BindExpression shape:
object:Expression(required)callee:Expression(required)
Aliases: Expression
blockStatement
t.blockStatement(body, directives);
See also t.isBlockStatement(node, opts) and t.assertBlockStatement(node, opts).
AST Node BlockStatement shape:
body:Array<Statement>(required)directives:Array<Directive>(default:[])
Aliases: Scopable, BlockParent, Block, Statement
booleanLiteral
t.booleanLiteral(value);
See also t.isBooleanLiteral(node, opts) and t.assertBooleanLiteral(node, opts).
AST Node BooleanLiteral shape:
value:boolean(required)
Aliases: Expression, Pureish, Literal, Immutable
booleanLiteralTypeAnnotation
t.booleanLiteralTypeAnnotation(value);
See also t.isBooleanLiteralTypeAnnotation(node, opts) and t.assertBooleanLiteralTypeAnnotation(node, opts).
AST Node BooleanLiteralTypeAnnotation shape:
value:boolean(required)
Aliases: Flow, FlowType
booleanTypeAnnotation
t.booleanTypeAnnotation();
See also t.isBooleanTypeAnnotation(node, opts) and t.assertBooleanTypeAnnotation(node, opts).
Aliases: Flow, FlowType, FlowBaseAnnotation
breakStatement
t.breakStatement(label);
See also t.isBreakStatement(node, opts) and t.assertBreakStatement(node, opts).
AST Node BreakStatement shape:
label:Identifier(default:null)
Aliases: Statement, Terminatorless, CompletionStatement
callExpression
t.callExpression(callee, arguments);
See also t.isCallExpression(node, opts) and t.assertCallExpression(node, opts).
AST Node CallExpression shape:
callee:Expression | V8IntrinsicIdentifier(required)arguments:Array<Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder>(required)optional:true | false(default:null, excluded from builder function)typeArguments:TypeParameterInstantiation(default:null, excluded from builder function)typeParameters:TSTypeParameterInstantiation(default:null, excluded from builder function)
Aliases: Expression
catchClause
t.catchClause(param, body);
See also t.isCatchClause(node, opts) and t.assertCatchClause(node, opts).
AST Node CatchClause shape:
param:Identifier | ArrayPattern | ObjectPattern(default:null)body:BlockStatement(required)
Aliases: Scopable, BlockParent
classBody
t.classBody(body);
See also t.isClassBody(node, opts) and t.assertClassBody(node, opts).
AST Node ClassBody shape:
body:Array<ClassMethod | ClassPrivateMethod | ClassProperty | ClassPrivateProperty | TSDeclareMethod | TSIndexSignature>(required)
classDeclaration
t.classDeclaration(id, superClass, body, decorators);
See also t.isClassDeclaration(node, opts) and t.assertClassDeclaration(node, opts).
AST Node ClassDeclaration shape:
id:Identifier(required)superClass:Expression(default:null)body:ClassBody(required)decorators:Array<Decorator>(default:null)abstract:boolean(default:null, excluded from builder function)declare:boolean(default:null, excluded from builder function)implements:Array<TSExpressionWithTypeArguments | ClassImplements>(default:null, excluded from builder function)mixins:InterfaceExtends(default:null, excluded from builder function)superTypeParameters:TypeParameterInstantiation | TSTypeParameterInstantiation(default:null, excluded from builder function)typeParameters:TypeParameterDeclaration | TSTypeParameterDeclaration | Noop(default:null, excluded from builder function)
Aliases: Scopable, Class, Statement, Declaration
classExpression
t.classExpression(id, superClass, body, decorators);
See also t.isClassExpression(node, opts) and t.assertClassExpression(node, opts).
AST Node ClassExpression shape:
id:Identifier(default:null)superClass:Expression(default:null)body:ClassBody(required)decorators:Array<Decorator>(default:null)implements:Array<TSExpressionWithTypeArguments | ClassImplements>(default:null, excluded from builder function)mixins:InterfaceExtends(default:null, excluded from builder function)superTypeParameters:TypeParameterInstantiation | TSTypeParameterInstantiation(default:null, excluded from builder function)typeParameters:TypeParameterDeclaration | TSTypeParameterDeclaration | Noop(default:null, excluded from builder function)
Aliases: Scopable, Class, Expression
classImplements
t.classImplements(id, typeParameters);
See also t.isClassImplements(node, opts) and t.assertClassImplements(node, opts).
AST Node ClassImplements shape:
id:Identifier(required)typeParameters:TypeParameterInstantiation(default:null)
Aliases: Flow
classMethod
t.classMethod(kind, key, params, body, computed, static, generator, async);
See also t.isClassMethod(node, opts) and t.assertClassMethod(node, opts).
AST Node ClassMethod shape:
kind:"get" | "set" | "method" | "constructor"(default:'method')key: if computed thenExpressionelseIdentifier | Literal(required)params:Array<Identifier | Pattern | RestElement | TSParameterProperty>(required)body:BlockStatement(required)computed:boolean(default:false)static:boolean(default:false)generator:boolean(default:false)async:boolean(default:false)abstract:boolean(default:null, excluded from builder function)access:"public" | "private" | "protected"(default:null, excluded from builder function)accessibility:"public" | "private" | "protected"(default:null, excluded from builder function)decorators:Array<Decorator>(default:null, excluded from builder function)optional:boolean(default:null, excluded from builder function)returnType:TypeAnnotation | TSTypeAnnotation | Noop(default:null, excluded from builder function)typeParameters:TypeParameterDeclaration | TSTypeParameterDeclaration | Noop(default:null, excluded from builder function)
Aliases: Function, Scopable, BlockParent, FunctionParent, Method
classPrivateMethod
t.classPrivateMethod(kind, key, params, body, static);
See also t.isClassPrivateMethod(node, opts) and t.assertClassPrivateMethod(node, opts).
AST Node ClassPrivateMethod shape:
kind:"get" | "set" | "method" | "constructor"(default:'method')key:PrivateName(required)params:Array<Identifier | Pattern | RestElement | TSParameterProperty>(required)body:BlockStatement(required)static:boolean(default:false)abstract:boolean(default:null, excluded from builder function)access:"public" | "private" | "protected"(default:null, excluded from builder function)accessibility:"public" | "private" | "protected"(default:null, excluded from builder function)async:boolean(default:false, excluded from builder function)computed: 'false' (default:false, excluded from builder function)decorators:Array<Decorator>(default:null, excluded from builder function)generator:boolean(default:false, excluded from builder function)optional:boolean(default:null, excluded from builder function)returnType:TypeAnnotation | TSTypeAnnotation | Noop(default:null, excluded from builder function)typeParameters:TypeParameterDeclaration | TSTypeParameterDeclaration | Noop(default:null, excluded from builder function)
Aliases: Function, Scopable, BlockParent, FunctionParent, Method, Private
classPrivateProperty
t.classPrivateProperty(key, value, decorators, static);
See also t.isClassPrivateProperty(node, opts) and t.assertClassPrivateProperty(node, opts).
AST Node ClassPrivateProperty shape:
key:PrivateName(required)value:Expression(default:null)decorators:Array<Decorator>(default:null)static(required)typeAnnotation:TypeAnnotation | TSTypeAnnotation | Noop(default:null, excluded from builder function)
Aliases: Property, Private
classProperty
t.classProperty(key, value, typeAnnotation, decorators, computed, static);
History
| Version | Changes |
|---|---|
v7.6.0 | Supports static |
See also t.isClassProperty(node, opts) and t.assertClassProperty(node, opts).
AST Node ClassProperty shape:
key:Identifier | StringLiteral | NumericLiteral | Expression(required)value:Expression(default:null)typeAnnotation:TypeAnnotation | TSTypeAnnotation | Noop(default:null)decorators:Array<Decorator>(default:null)computed:boolean(default:false)static:boolean(default:false)abstract:boolean(default:null, excluded from builder function)accessibility:"public" | "private" | "protected"(default:null, excluded from builder function)declare:boolean(default:null, excluded from builder function)definite:boolean(default:null, excluded from builder function)optional:boolean(default:null, excluded from builder function)readonly:boolean(default:null, excluded from builder function)
Aliases: Property
conditionalExpression
t.conditionalExpression(test, consequent, alternate);
See also t.isConditionalExpression(node, opts) and t.assertConditionalExpression(node, opts).
AST Node ConditionalExpression shape:
test:Expression(required)consequent:Expression(required)alternate:Expression(required)
Aliases: Expression, Conditional
continueStatement
t.continueStatement(label);
See also t.isContinueStatement(node, opts) and t.assertContinueStatement(node, opts).
AST Node ContinueStatement shape:
label:Identifier(default:null)
Aliases: Statement, Terminatorless, CompletionStatement
debuggerStatement
t.debuggerStatement();
See also t.isDebuggerStatement(node, opts) and t.assertDebuggerStatement(node, opts).
Aliases: Statement
decimalLiteral
t.decimalLiteral(value);
See also t.isDecimalLiteral(node, opts) and t.assertDecimalLiteral(node, opts).
AST Node DecimalLiteral shape:
value:string(required)
Aliases: Expression, Pureish, Literal, Immutable
declareClass
t.declareClass(id, typeParameters, extends, body);
See also t.isDeclareClass(node, opts) and t.assertDeclareClass(node, opts).
AST Node DeclareClass shape:
id:Identifier(required)typeParameters:TypeParameterDeclaration(default:null)extends:Array<InterfaceExtends>(default:null)body:ObjectTypeAnnotation(required)implements:Array<ClassImplements>(default:null, excluded from builder function)mixins:Array<InterfaceExtends>(default:null, excluded from builder function)
Aliases: Flow, FlowDeclaration, Statement, Declaration
declareExportAllDeclaration
t.declareExportAllDeclaration(source);
See also t.isDeclareExportAllDeclaration(node, opts) and t.assertDeclareExportAllDeclaration(node, opts).
AST Node DeclareExportAllDeclaration shape:
source:StringLiteral(required)exportKind:"type" | "value"(default:null, excluded from builder function)
Aliases: Flow, FlowDeclaration, Statement, Declaration
declareExportDeclaration
t.declareExportDeclaration(declaration, specifiers, source);
See also t.isDeclareExportDeclaration(node, opts) and t.assertDeclareExportDeclaration(node, opts).
AST Node DeclareExportDeclaration shape:
declaration:Flow(default:null)specifiers:Array<ExportSpecifier | ExportNamespaceSpecifier>(default:null)source:StringLiteral(default:null)default:boolean(default:null, excluded from builder function)
Aliases: Flow, FlowDeclaration, Statement, Declaration
declareFunction
t.declareFunction(id);
See also t.isDeclareFunction(node, opts) and t.assertDeclareFunction(node, opts).
AST Node DeclareFunction shape:
id:Identifier(required)predicate:DeclaredPredicate(default:null, excluded from builder function)
Aliases: Flow, FlowDeclaration, Statement, Declaration
declareInterface
t.declareInterface(id, typeParameters, extends, body);
See also t.isDeclareInterface(node, opts) and t.assertDeclareInterface(node, opts).
AST Node DeclareInterface shape:
id:Identifier(required)typeParameters:TypeParameterDeclaration(default:null)extends:Array<InterfaceExtends>(default:null)body:ObjectTypeAnnotation(required)implements:Array<ClassImplements>(default:null, excluded from builder function)mixins:Array<InterfaceExtends>(default:null, excluded from builder function)
Aliases: Flow, FlowDeclaration, Statement, Declaration
declareModule
t.declareModule(id, body, kind);
See also t.isDeclareModule(node, opts) and t.assertDeclareModule(node, opts).
AST Node DeclareModule shape:
id:Identifier | StringLiteral(required)body:BlockStatement(required)kind:"CommonJS" | "ES"(default:null)
Aliases: Flow, FlowDeclaration, Statement, Declaration
declareModuleExports
t.declareModuleExports(typeAnnotation);
See also t.isDeclareModuleExports(node, opts) and t.assertDeclareModuleExports(node, opts).
AST Node DeclareModuleExports shape:
typeAnnotation:TypeAnnotation(required)
Aliases: Flow, FlowDeclaration, Statement, Declaration
declareOpaqueType
t.declareOpaqueType(id, typeParameters, supertype);
See also t.isDeclareOpaqueType(node, opts) and t.assertDeclareOpaqueType(node, opts).
AST Node DeclareOpaqueType shape:
id:Identifier(required)typeParameters:TypeParameterDeclaration(default:null)supertype:FlowType(default:null)
Aliases: Flow, FlowDeclaration, Statement, Declaration
declareTypeAlias
t.declareTypeAlias(id, typeParameters, right);
See also t.isDeclareTypeAlias(node, opts) and t.assertDeclareTypeAlias(node, opts).
AST Node DeclareTypeAlias shape:
id:Identifier(required)typeParameters:TypeParameterDeclaration(default:null)right:FlowType(required)
Aliases: Flow, FlowDeclaration, Statement, Declaration
declareVariable
t.declareVariable(id);
See also t.isDeclareVariable(node, opts) and t.assertDeclareVariable(node, opts).
AST Node DeclareVariable shape:
id:Identifier(required)
Aliases: Flow, FlowDeclaration, Statement, Declaration
declaredPredicate
t.declaredPredicate(value);
See also t.isDeclaredPredicate(node, opts) and t.assertDeclaredPredicate(node, opts).
AST Node DeclaredPredicate shape:
value:Flow(required)
Aliases: Flow, FlowPredicate
decorator
t.decorator(expression);
See also t.isDecorator(node, opts) and t.assertDecorator(node, opts).
AST Node Decorator shape:
expression:Expression(required)
directive
t.directive(value);
See also t.isDirective(node, opts) and t.assertDirective(node, opts).
AST Node Directive shape:
value:DirectiveLiteral(required)
directiveLiteral
t.directiveLiteral(value);
See also t.isDirectiveLiteral(node, opts) and t.assertDirectiveLiteral(node, opts).
AST Node DirectiveLiteral shape:
value:string(required)
doExpression
t.doExpression(body);
See also t.isDoExpression(node, opts) and t.assertDoExpression(node, opts).
AST Node DoExpression shape:
body:BlockStatement(required)
Aliases: Expression
doWhileStatement
t.doWhileStatement(test, body);
See also t.isDoWhileStatement(node, opts) and t.assertDoWhileStatement(node, opts).
AST Node DoWhileStatement shape:
test:Expression(required)body:Statement(required)
Aliases: Statement, BlockParent, Loop, While, Scopable
emptyStatement
t.emptyStatement();
See also t.isEmptyStatement(node, opts) and t.assertEmptyStatement(node, opts).
Aliases: Statement
emptyTypeAnnotation
t.emptyTypeAnnotation();
See also t.isEmptyTypeAnnotation(node, opts) and t.assertEmptyTypeAnnotation(node, opts).
Aliases: Flow, FlowType, FlowBaseAnnotation
enumBooleanBody
t.enumBooleanBody(members);
See also t.isEnumBooleanBody(node, opts) and t.assertEnumBooleanBody(node, opts).
AST Node EnumBooleanBody shape:
members:Array<EnumBooleanMember>(required)explicitType:boolean(required)hasUnknownMembers:boolean(required)
Aliases: EnumBody
enumBooleanMember
t.enumBooleanMember(id);
See also t.isEnumBooleanMember(node, opts) and t.assertEnumBooleanMember(node, opts).
AST Node EnumBooleanMember shape:
id:Identifier(required)init:BooleanLiteral(required)
Aliases: EnumMember
enumDeclaration
t.enumDeclaration(id, body);
See also t.isEnumDeclaration(node, opts) and t.assertEnumDeclaration(node, opts).
AST Node EnumDeclaration shape:
id:Identifier(required)body:EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody(required)
Aliases: Statement, Declaration
enumDefaultedMember
t.enumDefaultedMember(id);
See also t.isEnumDefaultedMember(node, opts) and t.assertEnumDefaultedMember(node, opts).
AST Node EnumDefaultedMember shape:
id:Identifier(required)
Aliases: EnumMember
enumNumberBody
t.enumNumberBody(members);
See also t.isEnumNumberBody(node, opts) and t.assertEnumNumberBody(node, opts).
AST Node EnumNumberBody shape:
members:Array<EnumNumberMember>(required)explicitType:boolean(required)hasUnknownMembers:boolean(required)
Aliases: EnumBody
enumNumberMember
t.enumNumberMember(id, init);
See also t.isEnumNumberMember(node, opts) and t.assertEnumNumberMember(node, opts).
AST Node EnumNumberMember shape:
id:Identifier(required)init:NumericLiteral(required)
Aliases: EnumMember
enumStringBody
t.enumStringBody(members);
See also t.isEnumStringBody(node, opts) and t.assertEnumStringBody(node, opts).
AST Node EnumStringBody shape:
members:Array<EnumStringMember | EnumDefaultedMember>(required)explicitType:boolean(required)hasUnknownMembers:boolean(required)
Aliases: EnumBody
enumStringMember
t.enumStringMember(id, init);
See also t.isEnumStringMember(node, opts) and t.assertEnumStringMember(node, opts).
AST Node EnumStringMember shape:
id:Identifier(required)init:StringLiteral(required)
Aliases: EnumMember
enumSymbolBody
t.enumSymbolBody(members);
See also t.isEnumSymbolBody(node, opts) and t.assertEnumSymbolBody(node, opts).
AST Node EnumSymbolBody shape:
members:Array<EnumDefaultedMember>(required)hasUnknownMembers:boolean(required)
Aliases: EnumBody
existsTypeAnnotation
t.existsTypeAnnotation();
See also t.isExistsTypeAnnotation(node, opts) and t.assertExistsTypeAnnotation(node, opts).
Aliases: Flow, FlowType
exportAllDeclaration
t.exportAllDeclaration(source);
See also t.isExportAllDeclaration(node, opts) and t.assertExportAllDeclaration(node, opts).
AST Node ExportAllDeclaration shape:
source:StringLiteral(required)assertions:Array<ImportAttribute>(default:null, excluded from builder function)exportKind:"type" | "value"(default:null, excluded from builder function)
Aliases: Statement, Declaration, ModuleDeclaration, ExportDeclaration
exportDefaultDeclaration
t.exportDefaultDeclaration(declaration);
See also t.isExportDefaultDeclaration(node, opts) and t.assertExportDefaultDeclaration(node, opts).
AST Node ExportDefaultDeclaration shape:
declaration:FunctionDeclaration | TSDeclareFunction | ClassDeclaration | Expression(required)
Aliases: Statement, Declaration, ModuleDeclaration, ExportDeclaration
exportDefaultSpecifier
t.exportDefaultSpecifier(exported);
See also t.isExportDefaultSpecifier(node, opts) and t.assertExportDefaultSpecifier(node, opts).
AST Node ExportDefaultSpecifier shape:
exported:Identifier(required)
Aliases: ModuleSpecifier
exportNamedDeclaration
t.exportNamedDeclaration(declaration, specifiers, source);
See also t.isExportNamedDeclaration(node, opts) and t.assertExportNamedDeclaration(node, opts).
AST Node ExportNamedDeclaration shape:
declaration:Declaration(default:null)specifiers:Array<ExportSpecifier | ExportDefaultSpecifier | ExportNamespaceSpecifier>(default:[])source:StringLiteral(default:null)assertions:Array<ImportAttribute>(default:null, excluded from builder function)exportKind:"type" | "value"(default:null, excluded from builder function)
Aliases: Statement, Declaration, ModuleDeclaration, ExportDeclaration
exportNamespaceSpecifier
t.exportNamespaceSpecifier(exported);
See also t.isExportNamespaceSpecifier(node, opts) and t.assertExportNamespaceSpecifier(node, opts).
AST Node ExportNamespaceSpecifier shape:
exported:Identifier(required)
Aliases: ModuleSpecifier
exportSpecifier
t.exportSpecifier(local, exported);
See also t.isExportSpecifier(node, opts) and t.assertExportSpecifier(node, opts).
AST Node ExportSpecifier shape:
local:Identifier(required)exported:Identifier | StringLiteral(required)
Aliases: ModuleSpecifier
expressionStatement
t.expressionStatement(expression);
See also t.isExpressionStatement(node, opts) and t.assertExpressionStatement(node, opts).
AST Node ExpressionStatement shape:
expression:Expression(required)
Aliases: Statement, ExpressionWrapper
file
t.file(program, comments, tokens);
See also t.isFile(node, opts) and t.assertFile(node, opts).
AST Node File shape:
program:Program(required)comments:Array<CommentBlock | CommentLine>(default:null)tokens:Array<any>(default:null)
forInStatement
t.forInStatement(left, right, body);
See also t.isForInStatement(node, opts) and t.assertForInStatement(node, opts).
AST Node ForInStatement shape:
left:VariableDeclaration | LVal(required)right:Expression(required)body:Statement(required)
Aliases: Scopable, Statement, For, BlockParent, Loop, ForXStatement
forOfStatement
t.forOfStatement(left, right, body, await);
See also t.isForOfStatement(node, opts) and t.assertForOfStatement(node, opts).
AST Node ForOfStatement shape:
left:VariableDeclaration | LVal(required)right:Expression(required)body:Statement(required)await:boolean(default:false)
Aliases: Scopable, Statement, For, BlockParent, Loop, ForXStatement
forStatement
t.forStatement(init, test, update, body);
See also t.isForStatement(node, opts) and t.assertForStatement(node, opts).
AST Node ForStatement shape:
init:VariableDeclaration | Expression(default:null)test:Expression(default:null)update:Expression(default:null)body:Statement(required)
Aliases: Scopable, Statement, For, BlockParent, Loop
functionDeclaration
t.functionDeclaration(id, params, body, generator, async);
See also t.isFunctionDeclaration(node, opts) and t.assertFunctionDeclaration(node, opts).
AST Node FunctionDeclaration shape:
id:Identifier(default:null)params:Array<Identifier | Pattern | RestElement | TSParameterProperty>(required)body:BlockStatement(required)generator:boolean(default:false)async:boolean(default:false)declare:boolean(default:null, excluded from builder function)returnType:TypeAnnotation | TSTypeAnnotation | Noop(default:null, excluded from builder function)typeParameters:TypeParameterDeclaration | TSTypeParameterDeclaration | Noop(default:null, excluded from builder function)
Aliases: Scopable, Function, BlockParent, FunctionParent, Statement, Pureish, Declaration
functionExpression
t.functionExpression(id, params, body, generator, async);
See also t.isFunctionExpression(node, opts) and t.assertFunctionExpression(node, opts).
AST Node FunctionExpression shape:
id:Identifier(default:null)params:Array<Identifier | Pattern | RestElement | TSParameterProperty>(required)body:BlockStatement(required)generator:boolean(default:false)async:boolean(default:false)returnType:TypeAnnotation | TSTypeAnnotation | Noop(default:null, excluded from builder function)typeParameters:TypeParameterDeclaration | TSTypeParameterDeclaration | Noop(default:null, excluded from builder function)
Aliases: Scopable, Function, BlockParent, FunctionParent, Expression, Pureish
functionTypeAnnotation
t.functionTypeAnnotation(typeParameters, params, rest, returnType);
See also t.isFunctionTypeAnnotation(node, opts) and t.assertFunctionTypeAnnotation(node, opts).
AST Node FunctionTypeAnnotation shape:
typeParameters:TypeParameterDeclaration(default:null)params:Array<FunctionTypeParam>(required)rest:FunctionTypeParam(default:null)returnType:FlowType(required)this:FunctionTypeParam(default:null, excluded from builder function)
Aliases: Flow, FlowType
functionTypeParam
t.functionTypeParam(name, typeAnnotation);
See also t.isFunctionTypeParam(node, opts) and t.assertFunctionTypeParam(node, opts).
AST Node FunctionTypeParam shape:
name:Identifier(default:null)typeAnnotation:FlowType(required)optional:boolean(default:null, excluded from builder function)
Aliases: Flow
genericTypeAnnotation
t.genericTypeAnnotation(id, typeParameters);
See also t.isGenericTypeAnnotation(node, opts) and t.assertGenericTypeAnnotation(node, opts).
AST Node GenericTypeAnnotation shape:
id:Identifier | QualifiedTypeIdentifier(required)typeParameters:TypeParameterInstantiation(default:null)
Aliases: Flow, FlowType
identifier
t.identifier(name);
See also t.isIdentifier(node, opts) and t.assertIdentifier(node, opts).
AST Node Identifier shape:
name:string(required)decorators:Array<Decorator>(default:null, excluded from builder function)optional:boolean(default:null, excluded from builder function)typeAnnotation:TypeAnnotation | TSTypeAnnotation | Noop(default:null, excluded from builder function)
Aliases: Expression, PatternLike, LVal, TSEntityName
ifStatement
t.ifStatement(test, consequent, alternate);
See also t.isIfStatement(node, opts) and t.assertIfStatement(node, opts).
AST Node IfStatement shape:
test:Expression(required)consequent:Statement(required)alternate:Statement(default:null)
Aliases: Statement, Conditional
import
t.import();
See also t.isImport(node, opts) and t.assertImport(node, opts).
Aliases: Expression
importAttribute
t.importAttribute(key, value);
See also t.isImportAttribute(node, opts) and t.assertImportAttribute(node, opts).
AST Node ImportAttribute shape:
key:Identifier | StringLiteral(required)value:StringLiteral(required)
importDeclaration
t.importDeclaration(specifiers, source);
See also t.isImportDeclaration(node, opts) and t.assertImportDeclaration(node, opts).
AST Node ImportDeclaration shape:
specifiers:Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>(required)source:StringLiteral(required)assertions:Array<ImportAttribute>(default:null, excluded from builder function)importKind:"type" | "typeof" | "value"(default:null, excluded from builder function)
Aliases: Statement, Declaration, ModuleDeclaration
importDefaultSpecifier
t.importDefaultSpecifier(local);
See also t.isImportDefaultSpecifier(node, opts) and t.assertImportDefaultSpecifier(node, opts).
AST Node ImportDefaultSpecifier shape:
local:Identifier(required)
Aliases: ModuleSpecifier
importNamespaceSpecifier
t.importNamespaceSpecifier(local);
See also t.isImportNamespaceSpecifier(node, opts) and t.assertImportNamespaceSpecifier(node, opts).
AST Node ImportNamespaceSpecifier shape:
local:Identifier(required)
Aliases: ModuleSpecifier
importSpecifier
t.importSpecifier(local, imported);
See also t.isImportSpecifier(node, opts) and t.assertImportSpecifier(node, opts).
AST Node ImportSpecifier shape:
local:Identifier(required)imported:Identifier | StringLiteral(required)importKind:"type" | "typeof"(default:null, excluded from builder function)
Aliases: ModuleSpecifier
inferredPredicate
t.inferredPredicate();
See also t.isInferredPredicate(node, opts) and t.assertInferredPredicate(node, opts).
Aliases: Flow, FlowPredicate
interfaceDeclaration
t.interfaceDeclaration(id, typeParameters, extends, body);
See also t.isInterfaceDeclaration(node, opts) and t.assertInterfaceDeclaration(node, opts).
AST Node InterfaceDeclaration shape:
id:Identifier(required)typeParameters:TypeParameterDeclaration(default:null)extends:Array<InterfaceExtends>(default:null)body:ObjectTypeAnnotation(required)implements:Array<ClassImplements>(default:null, excluded from builder function)mixins:Array<InterfaceExtends>(default:null, excluded from builder function)
Aliases: Flow, FlowDeclaration, Statement, Declaration
interfaceExtends
t.interfaceExtends(id, typeParameters);
See also t.isInterfaceExtends(node, opts) and t.assertInterfaceExtends(node, opts).
AST Node InterfaceExtends shape:
id:Identifier | QualifiedTypeIdentifier(required)typeParameters:TypeParameterInstantiation(default:null)
Aliases: Flow
interfaceTypeAnnotation
t.interfaceTypeAnnotation(extends, body);
See also t.isInterfaceTypeAnnotation(node, opts) and t.assertInterfaceTypeAnnotation(node, opts).
AST Node InterfaceTypeAnnotation shape:
extends:Array<InterfaceExtends>(default:null)body:ObjectTypeAnnotation(required)
Aliases: Flow, FlowType
interpreterDirective
t.interpreterDirective(value);
See also t.isInterpreterDirective(node, opts) and t.assertInterpreterDirective(node, opts).
AST Node InterpreterDirective shape:
value:string(required)
intersectionTypeAnnotation
t.intersectionTypeAnnotation(types);
See also t.isIntersectionTypeAnnotation(node, opts) and t.assertIntersectionTypeAnnotation(node, opts).
AST Node IntersectionTypeAnnotation shape:
types:Array<FlowType>(required)
Aliases: Flow, FlowType
jsxAttribute
t.jsxAttribute(name, value);
See also t.isJSXAttribute(node, opts) and t.assertJSXAttribute(node, opts).
AST Node JSXAttribute shape:
name:JSXIdentifier | JSXNamespacedName(required)value:JSXElement | JSXFragment | StringLiteral | JSXExpressionContainer(default:null)
Aliases: JSX, Immutable
jsxClosingElement
t.jsxClosingElement(name);
See also t.isJSXClosingElement(node, opts) and t.assertJSXClosingElement(node, opts).
AST Node JSXClosingElement shape:
name:JSXIdentifier | JSXMemberExpression | JSXNamespacedName(required)
Aliases: JSX, Immutable
jsxClosingFragment
t.jsxClosingFragment();
See also t.isJSXClosingFragment(node, opts) and t.assertJSXClosingFragment(node, opts).
Aliases: JSX, Immutable
jsxElement
t.jsxElement(openingElement, closingElement, children, selfClosing);
See also t.isJSXElement(node, opts) and t.assertJSXElement(node, opts).
AST Node JSXElement shape:
openingElement:JSXOpeningElement(required)closingElement:JSXClosingElement(default:null)children:Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>(required)selfClosing:boolean(default:null)
Aliases: JSX, Immutable, Expression
jsxEmptyExpression
t.jsxEmptyExpression();
See also t.isJSXEmptyExpression(node, opts) and t.assertJSXEmptyExpression(node, opts).
Aliases: JSX
jsxExpressionContainer
t.jsxExpressionContainer(expression);
See also t.isJSXExpressionContainer(node, opts) and t.assertJSXExpressionContainer(node, opts).
AST Node JSXExpressionContainer shape:
expression:Expression | JSXEmptyExpression(required)
Aliases: JSX, Immutable
jsxFragment
t.jsxFragment(openingFragment, closingFragment, children);
See also t.isJSXFragment(node, opts) and t.assertJSXFragment(node, opts).
AST Node JSXFragment shape:
openingFragment:JSXOpeningFragment(required)closingFragment:JSXClosingFragment(required)children:Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>(required)
Aliases: JSX, Immutable, Expression
jsxIdentifier
t.jsxIdentifier(name);
See also t.isJSXIdentifier(node, opts) and t.assertJSXIdentifier(node, opts).
AST Node JSXIdentifier shape:
name:string(required)
Aliases: JSX
jsxMemberExpression
t.jsxMemberExpression(object, property);
See also t.isJSXMemberExpression(node, opts) and t.assertJSXMemberExpression(node, opts).
AST Node JSXMemberExpression shape:
object:JSXMemberExpression | JSXIdentifier(required)property:JSXIdentifier(required)
Aliases: JSX
jsxNamespacedName
t.jsxNamespacedName(namespace, name);
See also t.isJSXNamespacedName(node, opts) and t.assertJSXNamespacedName(node, opts).
AST Node JSXNamespacedName shape:
namespace:JSXIdentifier(required)name:JSXIdentifier(required)
Aliases: JSX
jsxOpeningElement
t.jsxOpeningElement(name, attributes, selfClosing);
See also t.isJSXOpeningElement(node, opts) and t.assertJSXOpeningElement(node, opts).
AST Node JSXOpeningElement shape:
name:JSXIdentifier | JSXMemberExpression | JSXNamespacedName(required)attributes:Array<JSXAttribute | JSXSpreadAttribute>(required)selfClosing:boolean(default:false)typeParameters:TypeParameterInstantiation | TSTypeParameterInstantiation(default:null, excluded from builder function)
Aliases: JSX, Immutable
jsxOpeningFragment
t.jsxOpeningFragment();
See also t.isJSXOpeningFragment(node, opts) and t.assertJSXOpeningFragment(node, opts).
Aliases: JSX, Immutable
jsxSpreadAttribute
t.jsxSpreadAttribute(argument);
See also t.isJSXSpreadAttribute(node, opts) and t.assertJSXSpreadAttribute(node, opts).
AST Node JSXSpreadAttribute shape:
argument:Expression(required)
Aliases: JSX
jsxSpreadChild
t.jsxSpreadChild(expression);
See also t.isJSXSpreadChild(node, opts) and t.assertJSXSpreadChild(node, opts).
AST Node JSXSpreadChild shape:
expression:Expression(required)
Aliases: JSX, Immutable
jsxText
t.jsxText(value);
See also t.isJSXText(node, opts) and t.assertJSXText(node, opts).
AST Node JSXText shape:
value:string(required)
Aliases: JSX, Immutable
labeledStatement
t.labeledStatement(label, body);
See also t.isLabeledStatement(node, opts) and t.assertLabeledStatement(node, opts).
AST Node LabeledStatement shape:
label:Identifier(required)body:Statement(required)
Aliases: Statement
logicalExpression
t.logicalExpression(operator, left, right);
See also t.isLogicalExpression(node, opts) and t.assertLogicalExpression(node, opts).
AST Node LogicalExpression shape:
operator:"||" | "&&" | "??"(required)left:Expression(required)right:Expression(required)
Aliases: Binary, Expression
memberExpression
t.memberExpression(object, property, computed, optional);
See also t.isMemberExpression(node, opts) and t.assertMemberExpression(node, opts).
AST Node MemberExpression shape:
object:Expression(required)property: if computed thenExpressionelseIdentifier(required)computed:boolean(default:false)optional:true | false(default:null)
Aliases: Expression, LVal
metaProperty
t.metaProperty(meta, property);
See also t.isMetaProperty(node, opts) and t.assertMetaProperty(node, opts).
AST Node MetaProperty shape:
meta:Identifier(required)property:Identifier(required)
Aliases: Expression
mixedTypeAnnotation
t.mixedTypeAnnotation();
See also t.isMixedTypeAnnotation(node, opts) and t.assertMixedTypeAnnotation(node, opts).
Aliases: Flow, FlowType, FlowBaseAnnotation
moduleExpression
t.moduleExpression(body);
See also t.isModuleExpression(node, opts) and t.assertModuleExpression(node, opts).
AST Node ModuleExpression shape:
body:Program(required)
Aliases: Expression
newExpression
t.newExpression(callee, arguments);
See also t.isNewExpression(node, opts) and t.assertNewExpression(node, opts).
AST Node NewExpression shape:
callee:Expression | V8IntrinsicIdentifier(required)arguments:Array<Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder>(required)optional:true | false(default:null, excluded from builder function)typeArguments:TypeParameterInstantiation(default:null, excluded from builder function)typeParameters:TSTypeParameterInstantiation(default:null, excluded from builder function)
Aliases: Expression
noop
t.noop();
See also t.isNoop(node, opts) and t.assertNoop(node, opts).
nullLiteral
t.nullLiteral();
See also t.isNullLiteral(node, opts) and t.assertNullLiteral(node, opts).
Aliases: Expression, Pureish, Literal, Immutable
nullLiteralTypeAnnotation
t.nullLiteralTypeAnnotation();
See also t.isNullLiteralTypeAnnotation(node, opts) and t.assertNullLiteralTypeAnnotation(node, opts).
Aliases: Flow, FlowType, FlowBaseAnnotation
nullableTypeAnnotation
t.nullableTypeAnnotation(typeAnnotation);
See also t.isNullableTypeAnnotation(node, opts) and t.assertNullableTypeAnnotation(node, opts).
AST Node NullableTypeAnnotation shape:
typeAnnotation:FlowType(required)
Aliases: Flow, FlowType
numberLiteralTypeAnnotation
t.numberLiteralTypeAnnotation(value);
See also t.isNumberLiteralTypeAnnotation(node, opts) and t.assertNumberLiteralTypeAnnotation(node, opts).
AST Node NumberLiteralTypeAnnotation shape:
value:number(required)
Aliases: Flow, FlowType
numberTypeAnnotation
t.numberTypeAnnotation();
See also t.isNumberTypeAnnotation(node, opts) and t.assertNumberTypeAnnotation(node, opts).
Aliases: Flow, FlowType, FlowBaseAnnotation
numericLiteral
t.numericLiteral(value);
See also t.isNumericLiteral(node, opts) and t.assertNumericLiteral(node, opts).
AST Node NumericLiteral shape:
value:number(required)
Aliases: Expression, Pureish, Literal, Immutable
objectExpression
t.objectExpression(properties);
See also t.isObjectExpression(node, opts) and t.assertObjectExpression(node, opts).
AST Node ObjectExpression shape:
properties:Array<ObjectMethod | ObjectProperty | SpreadElement>(required)
Aliases: Expression
objectMethod
t.objectMethod(kind, key, params, body, computed, generator, async);
See also t.isObjectMethod(node, opts) and t.assertObjectMethod(node, opts).
AST Node ObjectMethod shape:
kind:"method" | "get" | "set"(default:'method')key: if computed thenExpressionelseIdentifier | Literal(required)params:Array<Identifier | Pattern | RestElement | TSParameterProperty>(required)body:BlockStatement(required)computed:boolean(default:false)generator:boolean(default:false)async:boolean(default:false)decorators:Array<Decorator>(default:null, excluded from builder function)returnType:TypeAnnotation | TSTypeAnnotation | Noop(default:null, excluded from builder function)typeParameters:TypeParameterDeclaration | TSTypeParameterDeclaration | Noop(default:null, excluded from builder function)
Aliases: UserWhitespacable, Function, Scopable, BlockParent, FunctionParent, Method, ObjectMember
objectPattern
t.objectPattern(properties);
See also t.isObjectPattern(node, opts) and t.assertObjectPattern(node, opts).
AST Node ObjectPattern shape:
properties:Array<RestElement | ObjectProperty>(required)decorators:Array<Decorator>(default:null, excluded from builder function)typeAnnotation:TypeAnnotation | TSTypeAnnotation | Noop(default:null, excluded from builder function)
Aliases: Pattern, PatternLike, LVal
objectProperty
t.objectProperty(key, value, computed, shorthand, decorators);
See also t.isObjectProperty(node, opts) and t.assertObjectProperty(node, opts).
AST Node ObjectProperty shape:
key: if computed thenExpressionelseIdentifier | Literal(required)value:Expression | PatternLike(required)computed:boolean(default:false)shorthand:boolean(default:false)decorators:Array<Decorator>(default:null)
Aliases: UserWhitespacable, Property, ObjectMember
objectTypeAnnotation
t.objectTypeAnnotation(properties, indexers, callProperties, internalSlots, exact);
See also t.isObjectTypeAnnotation(node, opts) and t.assertObjectTypeAnnotation(node, opts).
AST Node ObjectTypeAnnotation shape:
properties:Array<ObjectTypeProperty | ObjectTypeSpreadProperty>(required)indexers:Array<ObjectTypeIndexer>(default:null)callProperties:Array<ObjectTypeCallProperty>(default:null)internalSlots:Array<ObjectTypeInternalSlot>(default:null)exact:boolean(default:false)inexact:boolean(default:null, excluded from builder function)
Aliases: Flow, FlowType
objectTypeCallProperty
t.objectTypeCallProperty(value);
See also t.isObjectTypeCallProperty(node, opts) and t.assertObjectTypeCallProperty(node, opts).
AST Node ObjectTypeCallProperty shape:
value:FlowType(required)static:boolean(required)
Aliases: Flow, UserWhitespacable
objectTypeIndexer
t.objectTypeIndexer(id, key, value, variance);
See also t.isObjectTypeIndexer(node, opts) and t.assertObjectTypeIndexer(node, opts).
AST Node ObjectTypeIndexer shape:
id:Identifier(default:null)key:FlowType(required)value:FlowType(required)variance:Variance(default:null)static:boolean(required)
Aliases: Flow, UserWhitespacable
objectTypeInternalSlot
t.objectTypeInternalSlot(id, value, optional, static, method);
See also t.isObjectTypeInternalSlot(node, opts) and t.assertObjectTypeInternalSlot(node, opts).
AST Node ObjectTypeInternalSlot shape:
id:Identifier(required)value:FlowType(required)optional:boolean(required)static:boolean(required)method:boolean(required)
Aliases: Flow, UserWhitespacable
objectTypeProperty
t.objectTypeProperty(key, value, variance);
See also t.isObjectTypeProperty(node, opts) and t.assertObjectTypeProperty(node, opts).
AST Node ObjectTypeProperty shape:
key:Identifier | StringLiteral(required)value:FlowType(required)variance:Variance(default:null)kind:"init" | "get" | "set"(required)method:boolean(required)optional:boolean(required)proto:boolean(required)static:boolean(required)
Aliases: Flow, UserWhitespacable
objectTypeSpreadProperty
t.objectTypeSpreadProperty(argument);
See also t.isObjectTypeSpreadProperty(node, opts) and t.assertObjectTypeSpreadProperty(node, opts).
AST Node ObjectTypeSpreadProperty shape:
argument:FlowType(required)
Aliases: Flow, UserWhitespacable
opaqueType
t.opaqueType(id, typeParameters, supertype, impltype);
See also t.isOpaqueType(node, opts) and t.assertOpaqueType(node, opts).
AST Node OpaqueType shape:
id:Identifier(required)typeParameters:TypeParameterDeclaration(default:null)supertype:FlowType(default:null)impltype:FlowType(required)
Aliases: Flow, FlowDeclaration, Statement, Declaration
optionalCallExpression
t.optionalCallExpression(callee, arguments, optional);
See also t.isOptionalCallExpression(node, opts) and t.assertOptionalCallExpression(node, opts).
AST Node OptionalCallExpression shape:
callee:Expression(required)arguments:Array<Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder>(required)optional:boolean(required)typeArguments:TypeParameterInstantiation(default:null, excluded from builder function)typeParameters:TSTypeParameterInstantiation(default:null, excluded from builder function)
Aliases: Expression
optionalMemberExpression
t.optionalMemberExpression(object, property, computed, optional);
See also t.isOptionalMemberExpression(node, opts) and t.assertOptionalMemberExpression(node, opts).
AST Node OptionalMemberExpression shape:
object:Expression(required)property:Expression | Identifier(required)computed:boolean(default:false)optional:boolean(required)
Aliases: Expression
parenthesizedExpression
t.parenthesizedExpression(expression);
See also t.isParenthesizedExpression(node, opts) and t.assertParenthesizedExpression(node, opts).
AST Node ParenthesizedExpression shape:
expression:Expression(required)
Aliases: Expression, ExpressionWrapper
pipelineBareFunction
t.pipelineBareFunction(callee);
See also t.isPipelineBareFunction(node, opts) and t.assertPipelineBareFunction(node, opts).
AST Node PipelineBareFunction shape:
callee:Expression(required)
pipelinePrimaryTopicReference
t.pipelinePrimaryTopicReference();
See also t.isPipelinePrimaryTopicReference(node, opts) and t.assertPipelinePrimaryTopicReference(node, opts).
Aliases: Expression
pipelineTopicExpression
t.pipelineTopicExpression(expression);
See also t.isPipelineTopicExpression(node, opts) and t.assertPipelineTopicExpression(node, opts).
AST Node PipelineTopicExpression shape:
expression:Expression(required)
placeholder
t.placeholder(expectedNode, name);
See also t.isPlaceholder(node, opts) and t.assertPlaceholder(node, opts).
AST Node Placeholder shape:
expectedNode:"Identifier" | "StringLiteral" | "Expression" | "Statement" | "Declaration" | "BlockStatement" | "ClassBody" | "Pattern"(required)name:Identifier(required)
privateName
t.privateName(id);
See also t.isPrivateName(node, opts) and t.assertPrivateName(node, opts).
AST Node PrivateName shape:
id:Identifier(required)
Aliases: Private
program
t.program(body, directives, sourceType, interpreter);
See also t.isProgram(node, opts) and t.assertProgram(node, opts).
AST Node Program shape:
body:Array<Statement>(required)directives:Array<Directive>(default:[])sourceType:"script" | "module"(default:'script')interpreter:InterpreterDirective(default:null)sourceFile:string(required)
Aliases: Scopable, BlockParent, Block
qualifiedTypeIdentifier
t.qualifiedTypeIdentifier(id, qualification);
See also t.isQualifiedTypeIdentifier(node, opts) and t.assertQualifiedTypeIdentifier(node, opts).
AST Node QualifiedTypeIdentifier shape:
id:Identifier(required)qualification:Identifier | QualifiedTypeIdentifier(required)
Aliases: Flow
recordExpression
t.recordExpression(properties);
See also t.isRecordExpression(node, opts) and t.assertRecordExpression(node, opts).
AST Node RecordExpression shape:
properties:Array<ObjectProperty | SpreadElement>(required)
Aliases: Expression
regExpLiteral
t.regExpLiteral(pattern, flags);
See also t.isRegExpLiteral(node, opts) and t.assertRegExpLiteral(node, opts).
AST Node RegExpLiteral shape:
pattern:string(required)flags:string(default:'')
Aliases: Expression, Pureish, Literal
restElement
t.restElement(argument);
See also t.isRestElement(node, opts) and t.assertRestElement(node, opts).
AST Node RestElement shape:
argument:LVal(required)decorators:Array<Decorator>(default:null, excluded from builder function)typeAnnotation:TypeAnnotation | TSTypeAnnotation | Noop(default:null, excluded from builder function)
Aliases: LVal, PatternLike
returnStatement
t.returnStatement(argument);
See also t.isReturnStatement(node, opts) and t.assertReturnStatement(node, opts).
AST Node ReturnStatement shape:
argument:Expression(default:null)
Aliases: Statement, Terminatorless, CompletionStatement
sequenceExpression
t.sequenceExpression(expressions);
See also t.isSequenceExpression(node, opts) and t.assertSequenceExpression(node, opts).
AST Node SequenceExpression shape:
expressions:Array<Expression>(required)
Aliases: Expression
spreadElement
t.spreadElement(argument);
See also t.isSpreadElement(node, opts) and t.assertSpreadElement(node, opts).
AST Node SpreadElement shape:
argument:Expression(required)
Aliases: UnaryLike
staticBlock
t.staticBlock(body);
See also t.isStaticBlock(node, opts) and t.assertStaticBlock(node, opts).
AST Node StaticBlock shape:
body:Array<Statement>(required)
Aliases: Scopable, BlockParent
stringLiteral
t.stringLiteral(value);
See also t.isStringLiteral(node, opts) and t.assertStringLiteral(node, opts).
AST Node StringLiteral shape:
value:string(required)
Aliases: Expression, Pureish, Literal, Immutable
stringLiteralTypeAnnotation
t.stringLiteralTypeAnnotation(value);
See also t.isStringLiteralTypeAnnotation(node, opts) and t.assertStringLiteralTypeAnnotation(node, opts).
AST Node StringLiteralTypeAnnotation shape:
value:string(required)
Aliases: Flow, FlowType
stringTypeAnnotation
t.stringTypeAnnotation();
See also t.isStringTypeAnnotation(node, opts) and t.assertStringTypeAnnotation(node, opts).
Aliases: Flow, FlowType, FlowBaseAnnotation
super
t.super();
See also t.isSuper(node, opts) and t.assertSuper(node, opts).
Aliases: Expression
switchCase
t.switchCase(test, consequent);
See also t.isSwitchCase(node, opts) and t.assertSwitchCase(node, opts).
AST Node SwitchCase shape:
test:Expression(default:null)consequent:Array<Statement>(required)
switchStatement
t.switchStatement(discriminant, cases);
See also t.isSwitchStatement(node, opts) and t.assertSwitchStatement(node, opts).
AST Node SwitchStatement shape:
discriminant:Expression(required)cases:Array<SwitchCase>(required)
Aliases: Statement, BlockParent, Scopable
symbolTypeAnnotation
t.symbolTypeAnnotation();
See also t.isSymbolTypeAnnotation(node, opts) and t.assertSymbolTypeAnnotation(node, opts).
Aliases: Flow, FlowType, FlowBaseAnnotation
tsAnyKeyword
t.tsAnyKeyword();
See also t.isTSAnyKeyword(node, opts) and t.assertTSAnyKeyword(node, opts).
Aliases: TSType, TSBaseType
tsArrayType
t.tsArrayType(elementType);
See also t.isTSArrayType(node, opts) and t.assertTSArrayType(node, opts).
AST Node TSArrayType shape:
elementType:TSType(required)
Aliases: TSType
tsAsExpression
t.tsAsExpression(expression, typeAnnotation);
See also t.isTSAsExpression(node, opts) and t.assertTSAsExpression(node, opts).
AST Node TSAsExpression shape:
expression:Expression(required)typeAnnotation:TSType(required)
Aliases: Expression
tsBigIntKeyword
t.tsBigIntKeyword();
See also t.isTSBigIntKeyword(node, opts) and t.assertTSBigIntKeyword(node, opts).
Aliases: TSType, TSBaseType
tsBooleanKeyword
t.tsBooleanKeyword();
See also t.isTSBooleanKeyword(node, opts) and t.assertTSBooleanKeyword(node, opts).
Aliases: TSType, TSBaseType
tsCallSignatureDeclaration
t.tsCallSignatureDeclaration(typeParameters, parameters, typeAnnotation);
See also t.isTSCallSignatureDeclaration(node, opts) and t.assertTSCallSignatureDeclaration(node, opts).
AST Node TSCallSignatureDeclaration shape:
typeParameters:TSTypeParameterDeclaration(default:null)parameters:Array<Identifier | RestElement>(required)typeAnnotation:TSTypeAnnotation(default:null)
Aliases: TSTypeElement
tsConditionalType
t.tsConditionalType(checkType, extendsType, trueType, falseType);
See also t.isTSConditionalType(node, opts) and t.assertTSConditionalType(node, opts).
AST Node TSConditionalType shape:
checkType:TSType(required)extendsType:TSType(required)trueType:TSType(required)falseType:TSType(required)
Aliases: TSType
tsConstructSignatureDeclaration
t.tsConstructSignatureDeclaration(typeParameters, parameters, typeAnnotation);
See also t.isTSConstructSignatureDeclaration(node, opts) and t.assertTSConstructSignatureDeclaration(node, opts).
AST Node TSConstructSignatureDeclaration shape:
typeParameters:TSTypeParameterDeclaration(default:null)parameters:Array<Identifier | RestElement>(required)typeAnnotation:TSTypeAnnotation(default:null)
Aliases: TSTypeElement
tsConstructorType
t.tsConstructorType(typeParameters, parameters, typeAnnotation);
See also t.isTSConstructorType(node, opts) and t.assertTSConstructorType(node, opts).
AST Node TSConstructorType shape:
typeParameters:TSTypeParameterDeclaration(default:null)parameters:Array<Identifier | RestElement>(required)typeAnnotation:TSTypeAnnotation(default:null)abstract:boolean(default:null, excluded from builder function)
Aliases: TSType
tsDeclareFunction
t.tsDeclareFunction(id, typeParameters, params, returnType);
See also t.isTSDeclareFunction(node, opts) and t.assertTSDeclareFunction(node, opts).
AST Node TSDeclareFunction shape:
id:Identifier(default:null)typeParameters:TSTypeParameterDeclaration | Noop(default:null)params:Array<Identifier | Pattern | RestElement | TSParameterProperty>(required)returnType:TSTypeAnnotation | Noop(default:null)async:boolean(default:false, excluded from builder function)declare:boolean(default:null, excluded from builder function)generator:boolean(default:false, excluded from builder function)
Aliases: Statement, Declaration
tsDeclareMethod
t.tsDeclareMethod(decorators, key, typeParameters, params, returnType);
See also t.isTSDeclareMethod(node, opts) and t.assertTSDeclareMethod(node, opts).
AST Node TSDeclareMethod shape:
decorators:Array<Decorator>(default:null)key:Identifier | StringLiteral | NumericLiteral | Expression(required)typeParameters:TSTypeParameterDeclaration | Noop(default:null)params:Array<Identifier | Pattern | RestElement | TSParameterProperty>(required)returnType:TSTypeAnnotation | Noop(default:null)abstract:boolean(default:null, excluded from builder function)access:"public" | "private" | "protected"(default:null, excluded from builder function)accessibility:"public" | "private" | "protected"(default:null, excluded from builder function)async:boolean(default:false, excluded from builder function)computed:boolean(default:false, excluded from builder function)generator:boolean(default:false, excluded from builder function)kind:"get" | "set" | "method" | "constructor"(default:'method', excluded from builder function)optional:boolean(default:null, excluded from builder function)static:boolean(default:false, excluded from builder function)
tsEnumDeclaration
t.tsEnumDeclaration(id, members);
See also t.isTSEnumDeclaration(node, opts) and t.assertTSEnumDeclaration(node, opts).
AST Node TSEnumDeclaration shape:
id:Identifier(required)members:Array<TSEnumMember>(required)const:boolean(default:null, excluded from builder function)declare:boolean(default:null, excluded from builder function)initializer:Expression(default:null, excluded from builder function)
Aliases: Statement, Declaration
tsEnumMember
t.tsEnumMember(id, initializer);
See also t.isTSEnumMember(node, opts) and t.assertTSEnumMember(node, opts).
AST Node TSEnumMember shape:
id:Identifier | StringLiteral(required)initializer:Expression(default:null)
tsExportAssignment
t.tsExportAssignment(expression);
See also t.isTSExportAssignment(node, opts) and t.assertTSExportAssignment(node, opts).
AST Node TSExportAssignment shape:
expression:Expression(required)
Aliases: Statement
tsExpressionWithTypeArguments
t.tsExpressionWithTypeArguments(expression, typeParameters);
See also t.isTSExpressionWithTypeArguments(node, opts) and t.assertTSExpressionWithTypeArguments(node, opts).
AST Node TSExpressionWithTypeArguments shape:
expression:TSEntityName(required)typeParameters:TSTypeParameterInstantiation(default:null)
Aliases: TSType
tsExternalModuleReference
t.tsExternalModuleReference(expression);
See also t.isTSExternalModuleReference(node, opts) and t.assertTSExternalModuleReference(node, opts).
AST Node TSExternalModuleReference shape:
expression:StringLiteral(required)
tsFunctionType
t.tsFunctionType(typeParameters, parameters, typeAnnotation);
See also t.isTSFunctionType(node, opts) and t.assertTSFunctionType(node, opts).
AST Node TSFunctionType shape:
typeParameters:TSTypeParameterDeclaration(default:null)parameters:Array<Identifier | RestElement>(required)typeAnnotation:TSTypeAnnotation(default:null)
Aliases: TSType
tsImportEqualsDeclaration
t.tsImportEqualsDeclaration(id, moduleReference);
See also t.isTSImportEqualsDeclaration(node, opts) and t.assertTSImportEqualsDeclaration(node, opts).
AST Node TSImportEqualsDeclaration shape:
id:Identifier(required)moduleReference:TSEntityName | TSExternalModuleReference(required)isExport:boolean(required)
Aliases: Statement
tsImportType
t.tsImportType(argument, qualifier, typeParameters);
See also t.isTSImportType(node, opts) and t.assertTSImportType(node, opts).
AST Node TSImportType shape:
argument:StringLiteral(required)qualifier:TSEntityName(default:null)typeParameters:TSTypeParameterInstantiation(default:null)
Aliases: TSType
tsIndexSignature
t.tsIndexSignature(parameters, typeAnnotation);
See also t.isTSIndexSignature(node, opts) and t.assertTSIndexSignature(node, opts).
AST Node TSIndexSignature shape:
parameters:Array<Identifier>(required)typeAnnotation:TSTypeAnnotation(default:null)readonly:boolean(default:null, excluded from builder function)
Aliases: TSTypeElement
tsIndexedAccessType
t.tsIndexedAccessType(objectType, indexType);
See also t.isTSIndexedAccessType(node, opts) and t.assertTSIndexedAccessType(node, opts).
AST Node TSIndexedAccessType shape:
objectType:TSType(required)indexType:TSType(required)
Aliases: TSType
tsInferType
t.tsInferType(typeParameter);
See also t.isTSInferType(node, opts) and t.assertTSInferType(node, opts).
AST Node TSInferType shape:
typeParameter:TSTypeParameter(required)
Aliases: TSType
tsInterfaceBody
t.tsInterfaceBody(body);
See also t.isTSInterfaceBody(node, opts) and t.assertTSInterfaceBody(node, opts).
AST Node TSInterfaceBody shape:
body:Array<TSTypeElement>(required)
tsInterfaceDeclaration
t.tsInterfaceDeclaration(id, typeParameters, extends, body);
See also t.isTSInterfaceDeclaration(node, opts) and t.assertTSInterfaceDeclaration(node, opts).
AST Node TSInterfaceDeclaration shape:
id:Identifier(required)typeParameters:TSTypeParameterDeclaration(default:null)extends:Array<TSExpressionWithTypeArguments>(default:null)body:TSInterfaceBody(required)declare:boolean(default:null, excluded from builder function)
Aliases: Statement, Declaration
tsIntersectionType
t.tsIntersectionType(types);
See also t.isTSIntersectionType(node, opts) and t.assertTSIntersectionType(node, opts).
AST Node TSIntersectionType shape:
types:Array<TSType>(required)
Aliases: TSType
tsIntrinsicKeyword
t.tsIntrinsicKeyword();
See also t.isTSIntrinsicKeyword(node, opts) and t.assertTSIntrinsicKeyword(node, opts).
Aliases: TSType, TSBaseType
tsLiteralType
t.tsLiteralType(literal);
See also t.isTSLiteralType(node, opts) and t.assertTSLiteralType(node, opts).
AST Node TSLiteralType shape:
literal:NumericLiteral | StringLiteral | BooleanLiteral | BigIntLiteral(required)
Aliases: TSType, TSBaseType
tsMappedType
t.tsMappedType(typeParameter, typeAnnotation, nameType);
See also t.isTSMappedType(node, opts) and t.assertTSMappedType(node, opts).
AST Node TSMappedType shape:
typeParameter:TSTypeParameter(required)typeAnnotation:TSType(default:null)nameType:TSType(default:null)optional:boolean(default:null, excluded from builder function)readonly:boolean(default:null, excluded from builder function)
Aliases: TSType
tsMethodSignature
t.tsMethodSignature(key, typeParameters, parameters, typeAnnotation);
See also t.isTSMethodSignature(node, opts) and t.assertTSMethodSignature(node, opts).
AST Node TSMethodSignature shape:
key:Expression(required)typeParameters:TSTypeParameterDeclaration(default:null)parameters:Array<Identifier | RestElement>(required)typeAnnotation:TSTypeAnnotation(default:null)computed:boolean(default:null, excluded from builder function)optional:boolean(default:null, excluded from builder function)
Aliases: TSTypeElement
tsModuleBlock
t.tsModuleBlock(body);
See also t.isTSModuleBlock(node, opts) and t.assertTSModuleBlock(node, opts).
AST Node TSModuleBlock shape:
body:Array<Statement>(required)
Aliases: Scopable, Block, BlockParent
tsModuleDeclaration
t.tsModuleDeclaration(id, body);
See also t.isTSModuleDeclaration(node, opts) and t.assertTSModuleDeclaration(node, opts).
AST Node TSModuleDeclaration shape:
id:Identifier | StringLiteral(required)body:TSModuleBlock | TSModuleDeclaration(required)declare:boolean(default:null, excluded from builder function)global:boolean(default:null, excluded from builder function)
Aliases: Statement, Declaration
tsNamedTupleMember
t.tsNamedTupleMember(label, elementType, optional);
See also t.isTSNamedTupleMember(node, opts) and t.assertTSNamedTupleMember(node, opts).
AST Node TSNamedTupleMember shape:
label:Identifier(required)elementType:TSType(required)optional:boolean(default:false)
tsNamespaceExportDeclaration
t.tsNamespaceExportDeclaration(id);
See also t.isTSNamespaceExportDeclaration(node, opts) and t.assertTSNamespaceExportDeclaration(node, opts).
AST Node TSNamespaceExportDeclaration shape:
id:Identifier(required)
Aliases: Statement
tsNeverKeyword
t.tsNeverKeyword();
See also t.isTSNeverKeyword(node, opts) and t.assertTSNeverKeyword(node, opts).
Aliases: TSType, TSBaseType
tsNonNullExpression
t.tsNonNullExpression(expression);
See also t.isTSNonNullExpression(node, opts) and t.assertTSNonNullExpression(node, opts).
AST Node TSNonNullExpression shape:
expression:Expression(required)
Aliases: Expression
tsNullKeyword
t.tsNullKeyword();
See also t.isTSNullKeyword(node, opts) and t.assertTSNullKeyword(node, opts).
Aliases: TSType, TSBaseType
tsNumberKeyword
t.tsNumberKeyword();
See also t.isTSNumberKeyword(node, opts) and t.assertTSNumberKeyword(node, opts).
Aliases: TSType, TSBaseType
tsObjectKeyword
t.tsObjectKeyword();
See also t.isTSObjectKeyword(node, opts) and t.assertTSObjectKeyword(node, opts).
Aliases: TSType, TSBaseType
tsOptionalType
t.tsOptionalType(typeAnnotation);
See also t.isTSOptionalType(node, opts) and t.assertTSOptionalType(node, opts).
AST Node TSOptionalType shape:
typeAnnotation:TSType(required)
Aliases: TSType
tsParameterProperty
t.tsParameterProperty(parameter);
See also t.isTSParameterProperty(node, opts) and t.assertTSParameterProperty(node, opts).
AST Node TSParameterProperty shape:
parameter:Identifier | AssignmentPattern(required)accessibility:"public" | "private" | "protected"(default:null, excluded from builder function)readonly:boolean(default:null, excluded from builder function)
Aliases: LVal
tsParenthesizedType
t.tsParenthesizedType(typeAnnotation);
See also t.isTSParenthesizedType(node, opts) and t.assertTSParenthesizedType(node, opts).
AST Node TSParenthesizedType shape:
typeAnnotation:TSType(required)
Aliases: TSType
tsPropertySignature
t.tsPropertySignature(key, typeAnnotation, initializer);
See also t.isTSPropertySignature(node, opts) and t.assertTSPropertySignature(node, opts).
AST Node TSPropertySignature shape:
key:Expression(required)typeAnnotation:TSTypeAnnotation(default:null)initializer:Expression(default:null)computed:boolean(default:null, excluded from builder function)optional:boolean(default:null, excluded from builder function)readonly:boolean(default:null, excluded from builder function)
Aliases: TSTypeElement
tsQualifiedName
t.tsQualifiedName(left, right);
See also t.isTSQualifiedName(node, opts) and t.assertTSQualifiedName(node, opts).
AST Node TSQualifiedName shape:
left:TSEntityName(required)right:Identifier(required)
Aliases: TSEntityName
tsRestType
t.tsRestType(typeAnnotation);
See also t.isTSRestType(node, opts) and t.assertTSRestType(node, opts).
AST Node TSRestType shape:
typeAnnotation:TSType(required)
Aliases: TSType
tsStringKeyword
t.tsStringKeyword();
See also t.isTSStringKeyword(node, opts) and t.assertTSStringKeyword(node, opts).
Aliases: TSType, TSBaseType
tsSymbolKeyword
t.tsSymbolKeyword();
See also t.isTSSymbolKeyword(node, opts) and t.assertTSSymbolKeyword(node, opts).
Aliases: TSType, TSBaseType
tsThisType
t.tsThisType();
See also t.isTSThisType(node, opts) and t.assertTSThisType(node, opts).
Aliases: TSType, TSBaseType
tsTupleType
t.tsTupleType(elementTypes);
See also t.isTSTupleType(node, opts) and t.assertTSTupleType(node, opts).
AST Node TSTupleType shape:
elementTypes:Array<TSType | TSNamedTupleMember>(required)
Aliases: TSType
tsTypeAliasDeclaration
t.tsTypeAliasDeclaration(id, typeParameters, typeAnnotation);
See also t.isTSTypeAliasDeclaration(node, opts) and t.assertTSTypeAliasDeclaration(node, opts).
AST Node TSTypeAliasDeclaration shape:
id:Identifier(required)typeParameters:TSTypeParameterDeclaration(default:null)typeAnnotation:TSType(required)declare:boolean(default:null, excluded from builder function)
Aliases: Statement, Declaration
tsTypeAnnotation
t.tsTypeAnnotation(typeAnnotation);
See also t.isTSTypeAnnotation(node, opts) and t.assertTSTypeAnnotation(node, opts).
AST Node TSTypeAnnotation shape:
typeAnnotation:TSType(required)
tsTypeAssertion
t.tsTypeAssertion(typeAnnotation, expression);
See also t.isTSTypeAssertion(node, opts) and t.assertTSTypeAssertion(node, opts).
AST Node TSTypeAssertion shape:
typeAnnotation:TSType(required)expression:Expression(required)
Aliases: Expression
tsTypeLiteral
t.tsTypeLiteral(members);
See also t.isTSTypeLiteral(node, opts) and t.assertTSTypeLiteral(node, opts).
AST Node TSTypeLiteral shape:
members:Array<TSTypeElement>(required)
Aliases: TSType
tsTypeOperator
t.tsTypeOperator(typeAnnotation);
See also t.isTSTypeOperator(node, opts) and t.assertTSTypeOperator(node, opts).
AST Node TSTypeOperator shape:
typeAnnotation:TSType(required)operator:string(required)
Aliases: TSType
tsTypeParameter
t.tsTypeParameter(constraint, default, name);
See also t.isTSTypeParameter(node, opts) and t.assertTSTypeParameter(node, opts).
AST Node TSTypeParameter shape:
constraint:TSType(default:null)default:TSType(default:null)name:string(required)
tsTypeParameterDeclaration
t.tsTypeParameterDeclaration(params);
See also t.isTSTypeParameterDeclaration(node, opts) and t.assertTSTypeParameterDeclaration(node, opts).
AST Node TSTypeParameterDeclaration shape:
params:Array<TSTypeParameter>(required)
tsTypeParameterInstantiation
t.tsTypeParameterInstantiation(params);
See also t.isTSTypeParameterInstantiation(node, opts) and t.assertTSTypeParameterInstantiation(node, opts).
AST Node TSTypeParameterInstantiation shape:
params:Array<TSType>(required)
tsTypePredicate
t.tsTypePredicate(parameterName, typeAnnotation, asserts);
See also t.isTSTypePredicate(node, opts) and t.assertTSTypePredicate(node, opts).
AST Node TSTypePredicate shape:
parameterName:Identifier | TSThisType(required)typeAnnotation:TSTypeAnnotation(default:null)asserts:boolean(default:null)
Aliases: TSType
tsTypeQuery
t.tsTypeQuery(exprName);
See also t.isTSTypeQuery(node, opts) and t.assertTSTypeQuery(node, opts).
AST Node TSTypeQuery shape:
exprName:TSEntityName | TSImportType(required)
Aliases: TSType
tsTypeReference
t.tsTypeReference(typeName, typeParameters);
See also t.isTSTypeReference(node, opts) and t.assertTSTypeReference(node, opts).
AST Node TSTypeReference shape:
typeName:TSEntityName(required)typeParameters:TSTypeParameterInstantiation(default:null)
Aliases: TSType
tsUndefinedKeyword
t.tsUndefinedKeyword();
See also t.isTSUndefinedKeyword(node, opts) and t.assertTSUndefinedKeyword(node, opts).
Aliases: TSType, TSBaseType
tsUnionType
t.tsUnionType(types);
See also t.isTSUnionType(node, opts) and t.assertTSUnionType(node, opts).
AST Node TSUnionType shape:
types:Array<TSType>(required)
Aliases: TSType
tsUnknownKeyword
t.tsUnknownKeyword();
See also t.isTSUnknownKeyword(node, opts) and t.assertTSUnknownKeyword(node, opts).
Aliases: TSType, TSBaseType
tsVoidKeyword
t.tsVoidKeyword();
See also t.isTSVoidKeyword(node, opts) and t.assertTSVoidKeyword(node, opts).
Aliases: TSType, TSBaseType
taggedTemplateExpression
t.taggedTemplateExpression(tag, quasi);
See also t.isTaggedTemplateExpression(node, opts) and t.assertTaggedTemplateExpression(node, opts).
AST Node TaggedTemplateExpression shape:
tag:Expression(required)quasi:TemplateLiteral(required)typeParameters:TypeParameterInstantiation | TSTypeParameterInstantiation(default:null, excluded from builder function)
Aliases: Expression
templateElement
t.templateElement(value, tail);
See also t.isTemplateElement(node, opts) and t.assertTemplateElement(node, opts).
AST Node TemplateElement shape:
value:{ raw: string, cooked?: string }(required)tail:boolean(default:false)
templateLiteral
t.templateLiteral(quasis, expressions);
See also t.isTemplateLiteral(node, opts) and t.assertTemplateLiteral(node, opts).
AST Node TemplateLiteral shape:
quasis:Array<TemplateElement>(required)expressions:Array<Expression | TSType>(required)
Aliases: Expression, Literal
thisExpression
t.thisExpression();
See also t.isThisExpression(node, opts) and t.assertThisExpression(node, opts).
Aliases: Expression
thisTypeAnnotation
t.thisTypeAnnotation();
See also t.isThisTypeAnnotation(node, opts) and t.assertThisTypeAnnotation(node, opts).
Aliases: Flow, FlowType, FlowBaseAnnotation
throwStatement
t.throwStatement(argument);
See also t.isThrowStatement(node, opts) and t.assertThrowStatement(node, opts).
AST Node ThrowStatement shape:
argument:Expression(required)
Aliases: Statement, Terminatorless, CompletionStatement
tryStatement
t.tryStatement(block, handler, finalizer);
See also t.isTryStatement(node, opts) and t.assertTryStatement(node, opts).
AST Node TryStatement shape:
block:BlockStatement(required)handler:CatchClause(default:null)finalizer:BlockStatement(default:null)
Aliases: Statement
tupleExpression
t.tupleExpression(elements);
See also t.isTupleExpression(node, opts) and t.assertTupleExpression(node, opts).
AST Node TupleExpression shape:
elements:Array<Expression | SpreadElement>(default:[])
Aliases: Expression
tupleTypeAnnotation
t.tupleTypeAnnotation(types);
See also t.isTupleTypeAnnotation(node, opts) and t.assertTupleTypeAnnotation(node, opts).
AST Node TupleTypeAnnotation shape:
types:Array<FlowType>(required)
Aliases: Flow, FlowType
typeAlias
t.typeAlias(id, typeParameters, right);
See also t.isTypeAlias(node, opts) and t.assertTypeAlias(node, opts).
AST Node TypeAlias shape:
id:Identifier(required)typeParameters:TypeParameterDeclaration(default:null)right:FlowType(required)
Aliases: Flow, FlowDeclaration, Statement, Declaration
typeAnnotation
t.typeAnnotation(typeAnnotation);
See also t.isTypeAnnotation(node, opts) and t.assertTypeAnnotation(node, opts).
AST Node TypeAnnotation shape:
typeAnnotation:FlowType(required)
Aliases: Flow
typeCastExpression
t.typeCastExpression(expression, typeAnnotation);
See also t.isTypeCastExpression(node, opts) and t.assertTypeCastExpression(node, opts).
AST Node TypeCastExpression shape:
expression:Expression(required)typeAnnotation:TypeAnnotation(required)
Aliases: Flow, ExpressionWrapper, Expression
typeParameter
t.typeParameter(bound, default, variance);
See also t.isTypeParameter(node, opts) and t.assertTypeParameter(node, opts).
AST Node TypeParameter shape:
bound:TypeAnnotation(default:null)default:FlowType(default:null)variance:Variance(default:null)name:string(required)
Aliases: Flow
typeParameterDeclaration
t.typeParameterDeclaration(params);
See also t.isTypeParameterDeclaration(node, opts) and t.assertTypeParameterDeclaration(node, opts).
AST Node TypeParameterDeclaration shape:
params:Array<TypeParameter>(required)
Aliases: Flow
typeParameterInstantiation
t.typeParameterInstantiation(params);
See also t.isTypeParameterInstantiation(node, opts) and t.assertTypeParameterInstantiation(node, opts).
AST Node TypeParameterInstantiation shape:
params:Array<FlowType>(required)
Aliases: Flow
typeofTypeAnnotation
t.typeofTypeAnnotation(argument);
See also t.isTypeofTypeAnnotation(node, opts) and t.assertTypeofTypeAnnotation(node, opts).
AST Node TypeofTypeAnnotation shape:
argument:FlowType(required)
Aliases: Flow, FlowType
unaryExpression
t.unaryExpression(operator, argument, prefix);
See also t.isUnaryExpression(node, opts) and t.assertUnaryExpression(node, opts).
AST Node UnaryExpression shape:
operator:"void" | "throw" | "delete" | "!" | "+" | "-" | "~" | "typeof"(required)argument:Expression(required)prefix:boolean(default:true)
Aliases: UnaryLike, Expression
unionTypeAnnotation
t.unionTypeAnnotation(types);
See also t.isUnionTypeAnnotation(node, opts) and t.assertUnionTypeAnnotation(node, opts).
AST Node UnionTypeAnnotation shape:
types:Array<FlowType>(required)
Aliases: Flow, FlowType
updateExpression
t.updateExpression(operator, argument, prefix);
See also t.isUpdateExpression(node, opts) and t.assertUpdateExpression(node, opts).
AST Node UpdateExpression shape:
operator:"++" | "--"(required)argument:Expression(required)prefix:boolean(default:false)
Aliases: Expression
v8IntrinsicIdentifier
t.v8IntrinsicIdentifier(name);
See also t.isV8IntrinsicIdentifier(node, opts) and t.assertV8IntrinsicIdentifier(node, opts).
AST Node V8IntrinsicIdentifier shape:
name:string(required)
variableDeclaration
t.variableDeclaration(kind, declarations);
See also t.isVariableDeclaration(node, opts) and t.assertVariableDeclaration(node, opts).
AST Node VariableDeclaration shape:
kind:"var" | "let" | "const"(required)declarations:Array<VariableDeclarator>(required)declare:boolean(default:null, excluded from builder function)
Aliases: Statement, Declaration
variableDeclarator
t.variableDeclarator(id, init);
See also t.isVariableDeclarator(node, opts) and t.assertVariableDeclarator(node, opts).
AST Node VariableDeclarator shape:
id:LVal(required)init:Expression(default:null)definite:boolean(default:null, excluded from builder function)
variance
t.variance(kind);
See also t.isVariance(node, opts) and t.assertVariance(node, opts).
AST Node Variance shape:
kind:"minus" | "plus"(required)
Aliases: Flow
voidTypeAnnotation
t.voidTypeAnnotation();
See also t.isVoidTypeAnnotation(node, opts) and t.assertVoidTypeAnnotation(node, opts).
Aliases: Flow, FlowType, FlowBaseAnnotation
whileStatement
t.whileStatement(test, body);
See also t.isWhileStatement(node, opts) and t.assertWhileStatement(node, opts).
AST Node WhileStatement shape:
test:Expression(required)body:Statement(required)
Aliases: Statement, BlockParent, Loop, While, Scopable
withStatement
t.withStatement(object, body);
See also t.isWithStatement(node, opts) and t.assertWithStatement(node, opts).
AST Node WithStatement shape:
object:Expression(required)body:Statement(required)
Aliases: Statement
yieldExpression
t.yieldExpression(argument, delegate);
See also t.isYieldExpression(node, opts) and t.assertYieldExpression(node, opts).
AST Node YieldExpression shape:
argument:Expression(default:null)delegate:boolean(default:false)
Aliases: Expression, Terminatorless