---
id: babel-types
title: @babel/types
---
This module contains methods for building ASTs manually and for checking the types of AST nodes.
npm install --save-dev @babel/types
t.anyTypeAnnotation();
See also t.isAnyTypeAnnotation(node, opts)
and t.assertAnyTypeAnnotation(node, opts)
.
Aliases: Flow
, FlowType
, FlowBaseAnnotation
t.argumentPlaceholder();
See also t.isArgumentPlaceholder(node, opts)
and t.assertArgumentPlaceholder(node, opts)
.
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
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
t.arrayTypeAnnotation(elementType);
See also t.isArrayTypeAnnotation(node, opts)
and t.assertArrayTypeAnnotation(node, opts)
.
AST Node ArrayTypeAnnotation
shape:
elementType
:FlowType
(required)
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
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
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
t.awaitExpression(argument);
See also t.isAwaitExpression(node, opts)
and t.assertAwaitExpression(node, opts)
.
AST Node AwaitExpression
shape:
argument
:Expression
(required)
Aliases: Expression
, Terminatorless
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
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
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
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
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
t.booleanLiteralTypeAnnotation(value);
See also t.isBooleanLiteralTypeAnnotation(node, opts)
and t.assertBooleanLiteralTypeAnnotation(node, opts)
.
AST Node BooleanLiteralTypeAnnotation
shape:
value
:boolean
(required)
t.booleanTypeAnnotation();
See also t.isBooleanTypeAnnotation(node, opts)
and t.assertBooleanTypeAnnotation(node, opts)
.
Aliases: Flow
, FlowType
, FlowBaseAnnotation
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
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
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
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)
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
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
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
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 thenExpression
elseIdentifier | 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
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
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)
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
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
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
t.debuggerStatement();
See also t.isDebuggerStatement(node, opts)
and t.assertDebuggerStatement(node, opts)
.
Aliases: Statement
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
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
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
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
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
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
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
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
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
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
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
t.declaredPredicate(value);
See also t.isDeclaredPredicate(node, opts)
and t.assertDeclaredPredicate(node, opts)
.
AST Node DeclaredPredicate
shape:
value
:Flow
(required)
Aliases: Flow
, FlowPredicate
t.decorator(expression);
See also t.isDecorator(node, opts)
and t.assertDecorator(node, opts)
.
AST Node Decorator
shape:
expression
:Expression
(required)
t.directive(value);
See also t.isDirective(node, opts)
and t.assertDirective(node, opts)
.
AST Node Directive
shape:
value
:DirectiveLiteral
(required)
t.directiveLiteral(value);
See also t.isDirectiveLiteral(node, opts)
and t.assertDirectiveLiteral(node, opts)
.
AST Node DirectiveLiteral
shape:
value
:string
(required)
t.doExpression(body);
See also t.isDoExpression(node, opts)
and t.assertDoExpression(node, opts)
.
AST Node DoExpression
shape:
body
:BlockStatement
(required)
Aliases: Expression
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
t.emptyStatement();
See also t.isEmptyStatement(node, opts)
and t.assertEmptyStatement(node, opts)
.
Aliases: Statement
t.emptyTypeAnnotation();
See also t.isEmptyTypeAnnotation(node, opts)
and t.assertEmptyTypeAnnotation(node, opts)
.
Aliases: Flow
, FlowType
, FlowBaseAnnotation
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
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
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
t.enumDefaultedMember(id);
See also t.isEnumDefaultedMember(node, opts)
and t.assertEnumDefaultedMember(node, opts)
.
AST Node EnumDefaultedMember
shape:
id
:Identifier
(required)
Aliases: EnumMember
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
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
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
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
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
t.existsTypeAnnotation();
See also t.isExistsTypeAnnotation(node, opts)
and t.assertExistsTypeAnnotation(node, opts)
.
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
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
t.exportDefaultSpecifier(exported);
See also t.isExportDefaultSpecifier(node, opts)
and t.assertExportDefaultSpecifier(node, opts)
.
AST Node ExportDefaultSpecifier
shape:
exported
:Identifier
(required)
Aliases: ModuleSpecifier
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
t.exportNamespaceSpecifier(exported);
See also t.isExportNamespaceSpecifier(node, opts)
and t.assertExportNamespaceSpecifier(node, opts)
.
AST Node ExportNamespaceSpecifier
shape:
exported
:Identifier
(required)
Aliases: ModuleSpecifier
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
t.expressionStatement(expression);
See also t.isExpressionStatement(node, opts)
and t.assertExpressionStatement(node, opts)
.
AST Node ExpressionStatement
shape:
expression
:Expression
(required)
Aliases: Statement
, ExpressionWrapper
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
)
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
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
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
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
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
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)
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
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
)
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
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
t.import();
See also t.isImport(node, opts)
and t.assertImport(node, opts)
.
Aliases: Expression
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)
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
t.importDefaultSpecifier(local);
See also t.isImportDefaultSpecifier(node, opts)
and t.assertImportDefaultSpecifier(node, opts)
.
AST Node ImportDefaultSpecifier
shape:
local
:Identifier
(required)
Aliases: ModuleSpecifier
t.importNamespaceSpecifier(local);
See also t.isImportNamespaceSpecifier(node, opts)
and t.assertImportNamespaceSpecifier(node, opts)
.
AST Node ImportNamespaceSpecifier
shape:
local
:Identifier
(required)
Aliases: ModuleSpecifier
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
t.inferredPredicate();
See also t.isInferredPredicate(node, opts)
and t.assertInferredPredicate(node, opts)
.
Aliases: Flow
, FlowPredicate
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
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
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)
t.interpreterDirective(value);
See also t.isInterpreterDirective(node, opts)
and t.assertInterpreterDirective(node, opts)
.
AST Node InterpreterDirective
shape:
value
:string
(required)
t.intersectionTypeAnnotation(types);
See also t.isIntersectionTypeAnnotation(node, opts)
and t.assertIntersectionTypeAnnotation(node, opts)
.
AST Node IntersectionTypeAnnotation
shape:
types
:Array<FlowType>
(required)
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
)
t.jsxClosingElement(name);
See also t.isJSXClosingElement(node, opts)
and t.assertJSXClosingElement(node, opts)
.
AST Node JSXClosingElement
shape:
name
:JSXIdentifier | JSXMemberExpression | JSXNamespacedName
(required)
t.jsxClosingFragment();
See also t.isJSXClosingFragment(node, opts)
and t.assertJSXClosingFragment(node, opts)
.
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
t.jsxEmptyExpression();
See also t.isJSXEmptyExpression(node, opts)
and t.assertJSXEmptyExpression(node, opts)
.
Aliases: JSX
t.jsxExpressionContainer(expression);
See also t.isJSXExpressionContainer(node, opts)
and t.assertJSXExpressionContainer(node, opts)
.
AST Node JSXExpressionContainer
shape:
expression
:Expression | JSXEmptyExpression
(required)
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
t.jsxIdentifier(name);
See also t.isJSXIdentifier(node, opts)
and t.assertJSXIdentifier(node, opts)
.
AST Node JSXIdentifier
shape:
name
:string
(required)
Aliases: JSX
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
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
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)
t.jsxOpeningFragment();
See also t.isJSXOpeningFragment(node, opts)
and t.assertJSXOpeningFragment(node, opts)
.
t.jsxSpreadAttribute(argument);
See also t.isJSXSpreadAttribute(node, opts)
and t.assertJSXSpreadAttribute(node, opts)
.
AST Node JSXSpreadAttribute
shape:
argument
:Expression
(required)
Aliases: JSX
t.jsxSpreadChild(expression);
See also t.isJSXSpreadChild(node, opts)
and t.assertJSXSpreadChild(node, opts)
.
AST Node JSXSpreadChild
shape:
expression
:Expression
(required)
t.jsxText(value);
See also t.isJSXText(node, opts)
and t.assertJSXText(node, opts)
.
AST Node JSXText
shape:
value
:string
(required)
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
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
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 thenExpression
elseIdentifier
(required)computed
:boolean
(default:false
)optional
:true | false
(default:null
)
Aliases: Expression
, LVal
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
t.mixedTypeAnnotation();
See also t.isMixedTypeAnnotation(node, opts)
and t.assertMixedTypeAnnotation(node, opts)
.
Aliases: Flow
, FlowType
, FlowBaseAnnotation
t.moduleExpression(body);
See also t.isModuleExpression(node, opts)
and t.assertModuleExpression(node, opts)
.
AST Node ModuleExpression
shape:
body
:Program
(required)
Aliases: Expression
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
t.noop();
See also t.isNoop(node, opts)
and t.assertNoop(node, opts)
.
t.nullLiteral();
See also t.isNullLiteral(node, opts)
and t.assertNullLiteral(node, opts)
.
Aliases: Expression
, Pureish
, Literal
, Immutable
t.nullLiteralTypeAnnotation();
See also t.isNullLiteralTypeAnnotation(node, opts)
and t.assertNullLiteralTypeAnnotation(node, opts)
.
Aliases: Flow
, FlowType
, FlowBaseAnnotation
t.nullableTypeAnnotation(typeAnnotation);
See also t.isNullableTypeAnnotation(node, opts)
and t.assertNullableTypeAnnotation(node, opts)
.
AST Node NullableTypeAnnotation
shape:
typeAnnotation
:FlowType
(required)
t.numberLiteralTypeAnnotation(value);
See also t.isNumberLiteralTypeAnnotation(node, opts)
and t.assertNumberLiteralTypeAnnotation(node, opts)
.
AST Node NumberLiteralTypeAnnotation
shape:
value
:number
(required)
t.numberTypeAnnotation();
See also t.isNumberTypeAnnotation(node, opts)
and t.assertNumberTypeAnnotation(node, opts)
.
Aliases: Flow
, FlowType
, FlowBaseAnnotation
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
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
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 thenExpression
elseIdentifier | 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
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
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 thenExpression
elseIdentifier | Literal
(required)value
:Expression | PatternLike
(required)computed
:boolean
(default:false
)shorthand
:boolean
(default:false
)decorators
:Array<Decorator>
(default:null
)
Aliases: UserWhitespacable
, Property
, ObjectMember
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)
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
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
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
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
t.objectTypeSpreadProperty(argument);
See also t.isObjectTypeSpreadProperty(node, opts)
and t.assertObjectTypeSpreadProperty(node, opts)
.
AST Node ObjectTypeSpreadProperty
shape:
argument
:FlowType
(required)
Aliases: Flow
, UserWhitespacable
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
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
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
t.parenthesizedExpression(expression);
See also t.isParenthesizedExpression(node, opts)
and t.assertParenthesizedExpression(node, opts)
.
AST Node ParenthesizedExpression
shape:
expression
:Expression
(required)
Aliases: Expression
, ExpressionWrapper
t.pipelineBareFunction(callee);
See also t.isPipelineBareFunction(node, opts)
and t.assertPipelineBareFunction(node, opts)
.
AST Node PipelineBareFunction
shape:
callee
:Expression
(required)
t.pipelinePrimaryTopicReference();
See also t.isPipelinePrimaryTopicReference(node, opts)
and t.assertPipelinePrimaryTopicReference(node, opts)
.
Aliases: Expression
t.pipelineTopicExpression(expression);
See also t.isPipelineTopicExpression(node, opts)
and t.assertPipelineTopicExpression(node, opts)
.
AST Node PipelineTopicExpression
shape:
expression
:Expression
(required)
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)
t.privateName(id);
See also t.isPrivateName(node, opts)
and t.assertPrivateName(node, opts)
.
AST Node PrivateName
shape:
id
:Identifier
(required)
Aliases: Private
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
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
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
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
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
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
t.sequenceExpression(expressions);
See also t.isSequenceExpression(node, opts)
and t.assertSequenceExpression(node, opts)
.
AST Node SequenceExpression
shape:
expressions
:Array<Expression>
(required)
Aliases: Expression
t.spreadElement(argument);
See also t.isSpreadElement(node, opts)
and t.assertSpreadElement(node, opts)
.
AST Node SpreadElement
shape:
argument
:Expression
(required)
Aliases: UnaryLike
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
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
t.stringLiteralTypeAnnotation(value);
See also t.isStringLiteralTypeAnnotation(node, opts)
and t.assertStringLiteralTypeAnnotation(node, opts)
.
AST Node StringLiteralTypeAnnotation
shape:
value
:string
(required)
t.stringTypeAnnotation();
See also t.isStringTypeAnnotation(node, opts)
and t.assertStringTypeAnnotation(node, opts)
.
Aliases: Flow
, FlowType
, FlowBaseAnnotation
t.super();
See also t.isSuper(node, opts)
and t.assertSuper(node, opts)
.
Aliases: Expression
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)
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
t.symbolTypeAnnotation();
See also t.isSymbolTypeAnnotation(node, opts)
and t.assertSymbolTypeAnnotation(node, opts)
.
Aliases: Flow
, FlowType
, FlowBaseAnnotation
t.tsAnyKeyword();
See also t.isTSAnyKeyword(node, opts)
and t.assertTSAnyKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
t.tsArrayType(elementType);
See also t.isTSArrayType(node, opts)
and t.assertTSArrayType(node, opts)
.
AST Node TSArrayType
shape:
elementType
:TSType
(required)
Aliases: TSType
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
t.tsBigIntKeyword();
See also t.isTSBigIntKeyword(node, opts)
and t.assertTSBigIntKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
t.tsBooleanKeyword();
See also t.isTSBooleanKeyword(node, opts)
and t.assertTSBooleanKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
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
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
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
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
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
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)
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
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
)
t.tsExportAssignment(expression);
See also t.isTSExportAssignment(node, opts)
and t.assertTSExportAssignment(node, opts)
.
AST Node TSExportAssignment
shape:
expression
:Expression
(required)
Aliases: Statement
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
t.tsExternalModuleReference(expression);
See also t.isTSExternalModuleReference(node, opts)
and t.assertTSExternalModuleReference(node, opts)
.
AST Node TSExternalModuleReference
shape:
expression
:StringLiteral
(required)
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
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
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
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
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
t.tsInferType(typeParameter);
See also t.isTSInferType(node, opts)
and t.assertTSInferType(node, opts)
.
AST Node TSInferType
shape:
typeParameter
:TSTypeParameter
(required)
Aliases: TSType
t.tsInterfaceBody(body);
See also t.isTSInterfaceBody(node, opts)
and t.assertTSInterfaceBody(node, opts)
.
AST Node TSInterfaceBody
shape:
body
:Array<TSTypeElement>
(required)
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
t.tsIntersectionType(types);
See also t.isTSIntersectionType(node, opts)
and t.assertTSIntersectionType(node, opts)
.
AST Node TSIntersectionType
shape:
types
:Array<TSType>
(required)
Aliases: TSType
t.tsIntrinsicKeyword();
See also t.isTSIntrinsicKeyword(node, opts)
and t.assertTSIntrinsicKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
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
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
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
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
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
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
)
t.tsNamespaceExportDeclaration(id);
See also t.isTSNamespaceExportDeclaration(node, opts)
and t.assertTSNamespaceExportDeclaration(node, opts)
.
AST Node TSNamespaceExportDeclaration
shape:
id
:Identifier
(required)
Aliases: Statement
t.tsNeverKeyword();
See also t.isTSNeverKeyword(node, opts)
and t.assertTSNeverKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
t.tsNonNullExpression(expression);
See also t.isTSNonNullExpression(node, opts)
and t.assertTSNonNullExpression(node, opts)
.
AST Node TSNonNullExpression
shape:
expression
:Expression
(required)
Aliases: Expression
t.tsNullKeyword();
See also t.isTSNullKeyword(node, opts)
and t.assertTSNullKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
t.tsNumberKeyword();
See also t.isTSNumberKeyword(node, opts)
and t.assertTSNumberKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
t.tsObjectKeyword();
See also t.isTSObjectKeyword(node, opts)
and t.assertTSObjectKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
t.tsOptionalType(typeAnnotation);
See also t.isTSOptionalType(node, opts)
and t.assertTSOptionalType(node, opts)
.
AST Node TSOptionalType
shape:
typeAnnotation
:TSType
(required)
Aliases: TSType
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
t.tsParenthesizedType(typeAnnotation);
See also t.isTSParenthesizedType(node, opts)
and t.assertTSParenthesizedType(node, opts)
.
AST Node TSParenthesizedType
shape:
typeAnnotation
:TSType
(required)
Aliases: TSType
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
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
t.tsRestType(typeAnnotation);
See also t.isTSRestType(node, opts)
and t.assertTSRestType(node, opts)
.
AST Node TSRestType
shape:
typeAnnotation
:TSType
(required)
Aliases: TSType
t.tsStringKeyword();
See also t.isTSStringKeyword(node, opts)
and t.assertTSStringKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
t.tsSymbolKeyword();
See also t.isTSSymbolKeyword(node, opts)
and t.assertTSSymbolKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
t.tsThisType();
See also t.isTSThisType(node, opts)
and t.assertTSThisType(node, opts)
.
Aliases: TSType
, TSBaseType
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
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
t.tsTypeAnnotation(typeAnnotation);
See also t.isTSTypeAnnotation(node, opts)
and t.assertTSTypeAnnotation(node, opts)
.
AST Node TSTypeAnnotation
shape:
typeAnnotation
:TSType
(required)
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
t.tsTypeLiteral(members);
See also t.isTSTypeLiteral(node, opts)
and t.assertTSTypeLiteral(node, opts)
.
AST Node TSTypeLiteral
shape:
members
:Array<TSTypeElement>
(required)
Aliases: TSType
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
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)
t.tsTypeParameterDeclaration(params);
See also t.isTSTypeParameterDeclaration(node, opts)
and t.assertTSTypeParameterDeclaration(node, opts)
.
AST Node TSTypeParameterDeclaration
shape:
params
:Array<TSTypeParameter>
(required)
t.tsTypeParameterInstantiation(params);
See also t.isTSTypeParameterInstantiation(node, opts)
and t.assertTSTypeParameterInstantiation(node, opts)
.
AST Node TSTypeParameterInstantiation
shape:
params
:Array<TSType>
(required)
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
t.tsTypeQuery(exprName);
See also t.isTSTypeQuery(node, opts)
and t.assertTSTypeQuery(node, opts)
.
AST Node TSTypeQuery
shape:
exprName
:TSEntityName | TSImportType
(required)
Aliases: TSType
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
t.tsUndefinedKeyword();
See also t.isTSUndefinedKeyword(node, opts)
and t.assertTSUndefinedKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
t.tsUnionType(types);
See also t.isTSUnionType(node, opts)
and t.assertTSUnionType(node, opts)
.
AST Node TSUnionType
shape:
types
:Array<TSType>
(required)
Aliases: TSType
t.tsUnknownKeyword();
See also t.isTSUnknownKeyword(node, opts)
and t.assertTSUnknownKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
t.tsVoidKeyword();
See also t.isTSVoidKeyword(node, opts)
and t.assertTSVoidKeyword(node, opts)
.
Aliases: TSType
, TSBaseType
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
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
)
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
t.thisExpression();
See also t.isThisExpression(node, opts)
and t.assertThisExpression(node, opts)
.
Aliases: Expression
t.thisTypeAnnotation();
See also t.isThisTypeAnnotation(node, opts)
and t.assertThisTypeAnnotation(node, opts)
.
Aliases: Flow
, FlowType
, FlowBaseAnnotation
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
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
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
t.tupleTypeAnnotation(types);
See also t.isTupleTypeAnnotation(node, opts)
and t.assertTupleTypeAnnotation(node, opts)
.
AST Node TupleTypeAnnotation
shape:
types
:Array<FlowType>
(required)
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
t.typeAnnotation(typeAnnotation);
See also t.isTypeAnnotation(node, opts)
and t.assertTypeAnnotation(node, opts)
.
AST Node TypeAnnotation
shape:
typeAnnotation
:FlowType
(required)
Aliases: Flow
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
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
t.typeParameterDeclaration(params);
See also t.isTypeParameterDeclaration(node, opts)
and t.assertTypeParameterDeclaration(node, opts)
.
AST Node TypeParameterDeclaration
shape:
params
:Array<TypeParameter>
(required)
Aliases: Flow
t.typeParameterInstantiation(params);
See also t.isTypeParameterInstantiation(node, opts)
and t.assertTypeParameterInstantiation(node, opts)
.
AST Node TypeParameterInstantiation
shape:
params
:Array<FlowType>
(required)
Aliases: Flow
t.typeofTypeAnnotation(argument);
See also t.isTypeofTypeAnnotation(node, opts)
and t.assertTypeofTypeAnnotation(node, opts)
.
AST Node TypeofTypeAnnotation
shape:
argument
:FlowType
(required)
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
t.unionTypeAnnotation(types);
See also t.isUnionTypeAnnotation(node, opts)
and t.assertUnionTypeAnnotation(node, opts)
.
AST Node UnionTypeAnnotation
shape:
types
:Array<FlowType>
(required)
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
t.v8IntrinsicIdentifier(name);
See also t.isV8IntrinsicIdentifier(node, opts)
and t.assertV8IntrinsicIdentifier(node, opts)
.
AST Node V8IntrinsicIdentifier
shape:
name
:string
(required)
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
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)
t.variance(kind);
See also t.isVariance(node, opts)
and t.assertVariance(node, opts)
.
AST Node Variance
shape:
kind
:"minus" | "plus"
(required)
Aliases: Flow
t.voidTypeAnnotation();
See also t.isVoidTypeAnnotation(node, opts)
and t.assertVoidTypeAnnotation(node, opts)
.
Aliases: Flow
, FlowType
, FlowBaseAnnotation
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
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
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
A cover of BinaryExpression and LogicalExpression, which share the same AST shape.
t.isBinary(node);
Covered nodes:
Deprecated. Will be removed in Babel 8.
t.isBlock(node);
Covered nodes:
A cover of AST nodes that start an execution context with new LexicalEnvironment. In other words, they define the scope of let
and const
declarations.
t.isBlockParent(node);
Covered nodes:
ArrowFunctionExpression
BlockStatement
CatchClause
ClassMethod
ClassPrivateMethod
DoWhileStatement
ForInStatement
ForOfStatement
ForStatement
FunctionDeclaration
FunctionExpression
ObjectMethod
Program
StaticBlock
SwitchStatement
TSModuleBlock
WhileStatement
A cover of ClassExpression and ClassDeclaration, which share the same AST shape.
t.isClass(node);
Covered nodes:
A statement that indicates the completion records. In other words, they define the control flow of the program, such as when should a loop break or an action throws critical errors.
t.isCompletionStatement(node);
Covered nodes:
A cover of ConditionalExpression and IfStatement, which share the same AST shape.
t.isConditional(node);
Covered nodes:
A cover of any Declarations.
t.isDeclaration(node);
Covered nodes:
ClassDeclaration
DeclareClass
DeclareExportAllDeclaration
DeclareExportDeclaration
DeclareFunction
DeclareInterface
DeclareModule
DeclareModuleExports
DeclareOpaqueType
DeclareTypeAlias
DeclareVariable
EnumDeclaration
ExportAllDeclaration
ExportDefaultDeclaration
ExportNamedDeclaration
FunctionDeclaration
ImportDeclaration
InterfaceDeclaration
OpaqueType
TSDeclareFunction
TSEnumDeclaration
TSInterfaceDeclaration
TSModuleDeclaration
TSTypeAliasDeclaration
TypeAlias
VariableDeclaration
A cover of Flow enum bodies.
t.isEnumBody(node);
Covered nodes:
A cover of Flow enum membors.
t.isEnumMember(node);
Covered nodes:
A cover of any ExportDeclarations.
t.isExportDeclaration(node);
Covered nodes:
A cover of any Expressions.
t.isExpression(node);
Covered nodes:
ArrayExpression
ArrowFunctionExpression
AssignmentExpression
AwaitExpression
BigIntLiteral
BinaryExpression
BindExpression
BooleanLiteral
CallExpression
ClassExpression
ConditionalExpression
DecimalLiteral
DoExpression
FunctionExpression
Identifier
Import
JSXElement
JSXFragment
LogicalExpression
MemberExpression
MetaProperty
ModuleExpression
NewExpression
NullLiteral
NumericLiteral
ObjectExpression
OptionalCallExpression
OptionalMemberExpression
ParenthesizedExpression
PipelinePrimaryTopicReference
RecordExpression
RegExpLiteral
SequenceExpression
StringLiteral
Super
TSAsExpression
TSNonNullExpression
TSTypeAssertion
TaggedTemplateExpression
TemplateLiteral
ThisExpression
TupleExpression
TypeCastExpression
UnaryExpression
UpdateExpression
YieldExpression
A wrapper of expression that does not have runtime semantics.
t.isExpressionWrapper(node);
Covered nodes:
A cover of AST nodes defined for Flow.
t.isFlow(node);
Covered nodes:
AnyTypeAnnotation
ArrayTypeAnnotation
BooleanLiteralTypeAnnotation
BooleanTypeAnnotation
ClassImplements
DeclareClass
DeclareExportAllDeclaration
DeclareExportDeclaration
DeclareFunction
DeclareInterface
DeclareModule
DeclareModuleExports
DeclareOpaqueType
DeclareTypeAlias
DeclareVariable
DeclaredPredicate
EmptyTypeAnnotation
ExistsTypeAnnotation
FunctionTypeAnnotation
FunctionTypeParam
GenericTypeAnnotation
InferredPredicate
InterfaceDeclaration
InterfaceExtends
InterfaceTypeAnnotation
IntersectionTypeAnnotation
MixedTypeAnnotation
NullLiteralTypeAnnotation
NullableTypeAnnotation
NumberLiteralTypeAnnotation
NumberTypeAnnotation
ObjectTypeAnnotation
ObjectTypeCallProperty
ObjectTypeIndexer
ObjectTypeInternalSlot
ObjectTypeProperty
ObjectTypeSpreadProperty
OpaqueType
QualifiedTypeIdentifier
StringLiteralTypeAnnotation
StringTypeAnnotation
SymbolTypeAnnotation
ThisTypeAnnotation
TupleTypeAnnotation
TypeAlias
TypeAnnotation
TypeCastExpression
TypeParameter
TypeParameterDeclaration
TypeParameterInstantiation
TypeofTypeAnnotation
UnionTypeAnnotation
Variance
VoidTypeAnnotation
A cover of primary Flow type annotations.
t.isFlowBaseAnnotation(node);
Covered nodes:
AnyTypeAnnotation
BooleanTypeAnnotation
EmptyTypeAnnotation
MixedTypeAnnotation
NullLiteralTypeAnnotation
NumberTypeAnnotation
StringTypeAnnotation
SymbolTypeAnnotation
ThisTypeAnnotation
VoidTypeAnnotation
A cover of Flow declarations.
t.isFlowDeclaration(node);
Covered nodes:
DeclareClass
DeclareExportAllDeclaration
DeclareExportDeclaration
DeclareFunction
DeclareInterface
DeclareModule
DeclareModuleExports
DeclareOpaqueType
DeclareTypeAlias
DeclareVariable
InterfaceDeclaration
OpaqueType
TypeAlias
A cover of Flow predicates.
t.isFlowPredicate(node);
Covered nodes:
A cover of Flow type annotations.
t.isFlowType(node);
Covered nodes:
AnyTypeAnnotation
ArrayTypeAnnotation
BooleanLiteralTypeAnnotation
BooleanTypeAnnotation
EmptyTypeAnnotation
ExistsTypeAnnotation
FunctionTypeAnnotation
GenericTypeAnnotation
InterfaceTypeAnnotation
IntersectionTypeAnnotation
MixedTypeAnnotation
NullLiteralTypeAnnotation
NullableTypeAnnotation
NumberLiteralTypeAnnotation
NumberTypeAnnotation
ObjectTypeAnnotation
StringLiteralTypeAnnotation
StringTypeAnnotation
SymbolTypeAnnotation
ThisTypeAnnotation
TupleTypeAnnotation
TypeofTypeAnnotation
UnionTypeAnnotation
VoidTypeAnnotation
A cover of ForStatements and ForXStatements.
t.isFor(node);
Covered nodes:
A cover of ForInStatements and ForOfStatements.
t.isForXStatement(node);
Covered nodes:
A cover of functions and methods, the must have body
and params
. Note: Function
is different to FunctionParent
.
t.isFunction(node);
Covered nodes:
ArrowFunctionExpression
ClassMethod
ClassPrivateMethod
FunctionDeclaration
FunctionExpression
ObjectMethod
A cover of AST nodes that start an execution context with new VariableEnvironment. In other words, they define the scope of var
declarations. FunctionParent did not include Program
since Babel 7.
t.isFunctionParent(node);
Covered nodes:
ArrowFunctionExpression
ClassMethod
ClassPrivateMethod
FunctionDeclaration
FunctionExpression
ObjectMethod
A cover of immutable objects and JSX elements. An object is immutable if no other properties can be defined once created.
t.isImmutable(node);
Covered nodes:
BigIntLiteral
BooleanLiteral
DecimalLiteral
JSXAttribute
JSXClosingElement
JSXClosingFragment
JSXElement
JSXExpressionContainer
JSXFragment
JSXOpeningElement
JSXOpeningFragment
JSXSpreadChild
JSXText
NullLiteral
NumericLiteral
StringLiteral
A cover of AST nodes defined for JSX.
t.isJSX(node);
Covered nodes:
JSXAttribute
JSXClosingElement
JSXClosingFragment
JSXElement
JSXEmptyExpression
JSXExpressionContainer
JSXFragment
JSXIdentifier
JSXMemberExpression
JSXNamespacedName
JSXOpeningElement
JSXOpeningFragment
JSXSpreadAttribute
JSXSpreadChild
JSXText
A cover of left hand side expressions used in the left
of assignment expressions and ForXStatements.
t.isLVal(node);
Covered nodes:
ArrayPattern
AssignmentPattern
Identifier
MemberExpression
ObjectPattern
RestElement
TSParameterProperty
A cover of Literals, Regular Expression Literals and Template Literals.
t.isLiteral(node);
Covered nodes:
BigIntLiteral
BooleanLiteral
DecimalLiteral
NullLiteral
NumericLiteral
RegExpLiteral
StringLiteral
TemplateLiteral
A cover of loop statements.
t.isLoop(node);
Covered nodes:
A cover of object methods and class methods.
t.isMethod(node);
Covered nodes:
A cover of ImportDeclaration and ExportDeclaration
t.isModuleDeclaration(node);
Covered nodes:
A cover of import and export specifiers. Note: It is not the ModuleSpecifier defined in the spec.
t.isModuleSpecifier(node);
Covered nodes:
ExportDefaultSpecifier
ExportNamespaceSpecifier
ExportSpecifier
ImportDefaultSpecifier
ImportNamespaceSpecifier
ImportSpecifier
A cover of members in an object literal.
t.isObjectMember(node);
Covered nodes:
A cover of BindingPattern except Identifiers.
t.isPattern(node);
Covered nodes:
A cover of BindingPatterns.
t.isPatternLike(node);
Covered nodes:
A cover of private class elements and private identifiers.
t.isPrivate(node);
Covered nodes:
A cover of object properties and class properties.
t.isProperty(node);
Covered nodes:
A cover of AST nodes which do not have side-effects. In other words, there is no observable behaviour changes if they are evaluated more than once.
t.isPureish(node);
Covered nodes:
ArrowFunctionExpression
BigIntLiteral
BooleanLiteral
DecimalLiteral
FunctionDeclaration
FunctionExpression
NullLiteral
NumericLiteral
RegExpLiteral
StringLiteral
A cover of FunctionParent and BlockParent.
t.isScopable(node);
Covered nodes:
ArrowFunctionExpression
BlockStatement
CatchClause
ClassDeclaration
ClassExpression
ClassMethod
ClassPrivateMethod
DoWhileStatement
ForInStatement
ForOfStatement
ForStatement
FunctionDeclaration
FunctionExpression
ObjectMethod
Program
StaticBlock
SwitchStatement
TSModuleBlock
WhileStatement
A cover of any Statements.
t.isStatement(node);
Covered nodes:
BlockStatement
BreakStatement
ClassDeclaration
ContinueStatement
DebuggerStatement
DeclareClass
DeclareExportAllDeclaration
DeclareExportDeclaration
DeclareFunction
DeclareInterface
DeclareModule
DeclareModuleExports
DeclareOpaqueType
DeclareTypeAlias
DeclareVariable
DoWhileStatement
EmptyStatement
EnumDeclaration
ExportAllDeclaration
ExportDefaultDeclaration
ExportNamedDeclaration
ExpressionStatement
ForInStatement
ForOfStatement
ForStatement
FunctionDeclaration
IfStatement
ImportDeclaration
InterfaceDeclaration
LabeledStatement
OpaqueType
ReturnStatement
SwitchStatement
TSDeclareFunction
TSEnumDeclaration
TSExportAssignment
TSImportEqualsDeclaration
TSInterfaceDeclaration
TSModuleDeclaration
TSNamespaceExportDeclaration
TSTypeAliasDeclaration
ThrowStatement
TryStatement
TypeAlias
VariableDeclaration
WhileStatement
WithStatement
A cover of primary TypeScript type annotations.
t.isTSBaseType(node);
Covered nodes:
TSAnyKeyword
TSBigIntKeyword
TSBooleanKeyword
TSIntrinsicKeyword
TSLiteralType
TSNeverKeyword
TSNullKeyword
TSNumberKeyword
TSObjectKeyword
TSStringKeyword
TSSymbolKeyword
TSThisType
TSUndefinedKeyword
TSUnknownKeyword
TSVoidKeyword
A cover of ts entities.
t.isTSEntityName(node);
Covered nodes:
A cover of TypeScript type annotations.
t.isTSType(node);
Covered nodes:
TSAnyKeyword
TSArrayType
TSBigIntKeyword
TSBooleanKeyword
TSConditionalType
TSConstructorType
TSExpressionWithTypeArguments
TSFunctionType
TSImportType
TSIndexedAccessType
TSInferType
TSIntersectionType
TSIntrinsicKeyword
TSLiteralType
TSMappedType
TSNeverKeyword
TSNullKeyword
TSNumberKeyword
TSObjectKeyword
TSOptionalType
TSParenthesizedType
TSRestType
TSStringKeyword
TSSymbolKeyword
TSThisType
TSTupleType
TSTypeLiteral
TSTypeOperator
TSTypePredicate
TSTypeQuery
TSTypeReference
TSUndefinedKeyword
TSUnionType
TSUnknownKeyword
TSVoidKeyword
A cover of TypeScript type declarations.
t.isTSTypeElement(node);
Covered nodes:
TSCallSignatureDeclaration
TSConstructSignatureDeclaration
TSIndexSignature
TSMethodSignature
TSPropertySignature
A cover of AST nodes whose semantic will change when a line terminator is inserted between the operator and the operand.
t.isTerminatorless(node);
Covered nodes:
A cover of UnaryExpression and SpreadElement.
t.isUnaryLike(node);
Covered nodes:
Deprecated. Will be removed in Babel 8.
t.isUserWhitespacable(node);
Covered nodes:
ObjectMethod
ObjectProperty
ObjectTypeCallProperty
ObjectTypeIndexer
ObjectTypeInternalSlot
ObjectTypeProperty
ObjectTypeSpreadProperty
A cover of DoWhileStatement and WhileStatement, which share the same AST shape.
t.isWhile(node);
Covered nodes: