{"_id":"@andywer/babel-types-dctypes","_rev":"2-6f3dd019cee9ac287ce101acd7dd8845","name":"@andywer/babel-types-dctypes","description":"Babel Types is a Lodash-esque utility library for AST nodes","dist-tags":{"latest":"7.0.0-alpha.1"},"versions":{"7.0.0-alpha.1":{"name":"@andywer/babel-types-dctypes","version":"7.0.0-alpha.1","description":"Babel Types is a Lodash-esque utility library for AST nodes","author":{"name":"Sebastian McKenzie","email":"sebmck@gmail.com"},"homepage":"https://babeljs.io/","license":"MIT","repository":{"type":"git","url":"https://github.com/babel/babel/tree/master/packages/babel-types"},"main":"lib/index.js","dependencies":{"esutils":"^2.0.2","lodash":"^4.2.0","to-fast-properties":"^1.0.1"},"devDependencies":{"babylon":"7.0.0-beta.4"},"_id":"@andywer/babel-types-dctypes@7.0.0-alpha.1","scripts":{},"_shasum":"af5a1fee6fd78bf2eb23c1e4e7c339655a469688","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"andywer","email":"andy@dev.next-step-software.com"},"dist":{"shasum":"af5a1fee6fd78bf2eb23c1e4e7c339655a469688","tarball":"https://registry.npmjs.org/@andywer/babel-types-dctypes/-/babel-types-dctypes-7.0.0-alpha.1.tgz","integrity":"sha512-3PTN4qDc6dxifCf2MUTeK6Ix0+ICxrI3bXwYoy87WlC3SrKPn4pIWltPCfzfdoqjoysemqLcUS7HzVZ+Wle8KA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1qTu5dtq3tRoKhrC127mBwPdrbwLu24jBcBYK1jinvgIhALSffnvIAQouqYIUK6Yqo/vYI80KHxihFF0DfafQk+Ef"}]},"maintainers":[{"name":"andywer","email":"andy@dev.next-step-software.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/babel-types-dctypes-7.0.0-alpha.1.tgz_1489599688355_0.4163462952710688"}}},"readme":"# babel-types\n\n> This module contains methods for building ASTs manually and for checking the types of AST nodes.\n\n## Install\n\n```sh\nnpm install --save-dev babel-types\n```\n\n## API\n\n<!-- begin generated section -->\n\n### anyTypeAnnotation\n```javascript\nt.anyTypeAnnotation()\n```\n\nSee also `t.isAnyTypeAnnotation(node, opts)` and `t.assertAnyTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### arrayExpression\n```javascript\nt.arrayExpression(elements)\n```\n\nSee also `t.isArrayExpression(node, opts)` and `t.assertArrayExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `elements`: `Array<null | Expression | SpreadElement>` (default: `[]`)\n\n---\n\n### arrayPattern\n```javascript\nt.arrayPattern(elements, typeAnnotation)\n```\n\nSee also `t.isArrayPattern(node, opts)` and `t.assertArrayPattern(node, opts)`.\n\nAliases: `Pattern`, `LVal`\n\n - `elements`: `Array<Expression>` (required)\n - `typeAnnotation` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### arrayTypeAnnotation\n```javascript\nt.arrayTypeAnnotation(elementType)\n```\n\nSee also `t.isArrayTypeAnnotation(node, opts)` and `t.assertArrayTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `elementType` (required)\n\n---\n\n### arrowFunctionExpression\n```javascript\nt.arrowFunctionExpression(params, body, async)\n```\n\nSee also `t.isArrowFunctionExpression(node, opts)` and `t.assertArrowFunctionExpression(node, opts)`.\n\nAliases: `Scopable`, `Function`, `BlockParent`, `FunctionParent`, `Expression`, `Pureish`\n\n - `params`: `Array<LVal>` (required)\n - `body`: `BlockStatement | Expression` (required)\n - `async`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### assignmentExpression\n```javascript\nt.assignmentExpression(operator, left, right)\n```\n\nSee also `t.isAssignmentExpression(node, opts)` and `t.assertAssignmentExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `operator`: `string` (required)\n - `left`: `LVal` (required)\n - `right`: `Expression` (required)\n\n---\n\n### assignmentPattern\n```javascript\nt.assignmentPattern(left, right)\n```\n\nSee also `t.isAssignmentPattern(node, opts)` and `t.assertAssignmentPattern(node, opts)`.\n\nAliases: `Pattern`, `LVal`\n\n - `left`: `Identifier` (required)\n - `right`: `Expression` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### awaitExpression\n```javascript\nt.awaitExpression(argument)\n```\n\nSee also `t.isAwaitExpression(node, opts)` and `t.assertAwaitExpression(node, opts)`.\n\nAliases: `Expression`, `Terminatorless`\n\n - `argument`: `Expression` (required)\n\n---\n\n### binaryExpression\n```javascript\nt.binaryExpression(operator, left, right)\n```\n\nSee also `t.isBinaryExpression(node, opts)` and `t.assertBinaryExpression(node, opts)`.\n\nAliases: `Binary`, `Expression`\n\n - `operator`: `'+' | '-' | '/' | '%' | '*' | '**' | '&' | '|' | '>>' | '>>>' | '<<' | '^' | '==' | '===' | '!=' | '!==' | 'in' | 'instanceof' | '>' | '<' | '>=' | '<='` (required)\n - `left`: `Expression` (required)\n - `right`: `Expression` (required)\n\n---\n\n### bindExpression\n```javascript\nt.bindExpression(object, callee)\n```\n\nSee also `t.isBindExpression(node, opts)` and `t.assertBindExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `object` (required)\n - `callee` (required)\n\n---\n\n### blockStatement\n```javascript\nt.blockStatement(body, directives)\n```\n\nSee also `t.isBlockStatement(node, opts)` and `t.assertBlockStatement(node, opts)`.\n\nAliases: `Scopable`, `BlockParent`, `Block`, `Statement`\n\n - `body`: `Array<Statement>` (required)\n - `directives`: `Array<Directive>` (default: `[]`)\n\n---\n\n### booleanLiteral\n```javascript\nt.booleanLiteral(value)\n```\n\nSee also `t.isBooleanLiteral(node, opts)` and `t.assertBooleanLiteral(node, opts)`.\n\nAliases: `Expression`, `Pureish`, `Literal`, `Immutable`\n\n - `value`: `boolean` (required)\n\n---\n\n### booleanLiteralTypeAnnotation\n```javascript\nt.booleanLiteralTypeAnnotation()\n```\n\nSee also `t.isBooleanLiteralTypeAnnotation(node, opts)` and `t.assertBooleanLiteralTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n\n---\n\n### booleanTypeAnnotation\n```javascript\nt.booleanTypeAnnotation()\n```\n\nSee also `t.isBooleanTypeAnnotation(node, opts)` and `t.assertBooleanTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### breakStatement\n```javascript\nt.breakStatement(label)\n```\n\nSee also `t.isBreakStatement(node, opts)` and `t.assertBreakStatement(node, opts)`.\n\nAliases: `Statement`, `Terminatorless`, `CompletionStatement`\n\n - `label`: `Identifier` (default: `null`)\n\n---\n\n### callExpression\n```javascript\nt.callExpression(callee, arguments)\n```\n\nSee also `t.isCallExpression(node, opts)` and `t.assertCallExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `callee`: `Expression` (required)\n - `arguments`: `Array<Expression | SpreadElement>` (required)\n\n---\n\n### catchClause\n```javascript\nt.catchClause(param, body)\n```\n\nSee also `t.isCatchClause(node, opts)` and `t.assertCatchClause(node, opts)`.\n\nAliases: `Scopable`\n\n - `param`: `Identifier` (required)\n - `body`: `BlockStatement` (required)\n\n---\n\n### classBody\n```javascript\nt.classBody(body)\n```\n\nSee also `t.isClassBody(node, opts)` and `t.assertClassBody(node, opts)`.\n\n - `body`: `Array<ClassMethod | ClassProperty>` (required)\n\n---\n\n### classDeclaration\n```javascript\nt.classDeclaration(id, superClass, body, decorators)\n```\n\nSee also `t.isClassDeclaration(node, opts)` and `t.assertClassDeclaration(node, opts)`.\n\nAliases: `Scopable`, `Class`, `Statement`, `Declaration`, `Pureish`\n\n - `id`: `Identifier` (required)\n - `superClass`: `Expression` (default: `null`)\n - `body`: `ClassBody` (required)\n - `decorators`: `Array<Decorator>` (required)\n - `implements` (default: `null`)\n - `mixins` (default: `null`)\n - `superTypeParameters` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### classExpression\n```javascript\nt.classExpression(id, superClass, body, decorators)\n```\n\nSee also `t.isClassExpression(node, opts)` and `t.assertClassExpression(node, opts)`.\n\nAliases: `Scopable`, `Class`, `Expression`, `Pureish`\n\n - `id`: `Identifier` (default: `null`)\n - `superClass`: `Expression` (default: `null`)\n - `body`: `ClassBody` (required)\n - `decorators`: `Array<Decorator>` (required)\n - `implements` (default: `null`)\n - `mixins` (default: `null`)\n - `superTypeParameters` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### classImplements\n```javascript\nt.classImplements(id, typeParameters)\n```\n\nSee also `t.isClassImplements(node, opts)` and `t.assertClassImplements(node, opts)`.\n\nAliases: `Flow`\n\n - `id` (required)\n - `typeParameters` (required)\n\n---\n\n### classMethod\n```javascript\nt.classMethod(kind, key, params, body, computed, static)\n```\n\nSee also `t.isClassMethod(node, opts)` and `t.assertClassMethod(node, opts)`.\n\nAliases: `Function`, `Scopable`, `BlockParent`, `FunctionParent`, `Method`\n\n - `kind`: `\"get\" | \"set\" | \"method\" | \"constructor\"` (default: `'method'`)\n - `key`if computed then `Expression` else `Identifier | Literal` (required)\n - `params`: `Array<LVal>` (required)\n - `body`: `BlockStatement` (required)\n - `computed`: `boolean` (default: `false`)\n - `static`: `boolean` (default: `false`)\n - `async`: `boolean` (default: `false`)\n - `decorators` (default: `null`)\n - `generator`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### classProperty\n```javascript\nt.classProperty(key, value, typeAnnotation, decorators, computed)\n```\n\nSee also `t.isClassProperty(node, opts)` and `t.assertClassProperty(node, opts)`.\n\nAliases: `Property`\n\n - `key` (required)\n - `value` (required)\n - `typeAnnotation` (required)\n - `decorators` (required)\n - `computed`: `boolean` (default: `false`)\n\n---\n\n### conditionalExpression\n```javascript\nt.conditionalExpression(test, consequent, alternate)\n```\n\nSee also `t.isConditionalExpression(node, opts)` and `t.assertConditionalExpression(node, opts)`.\n\nAliases: `Expression`, `Conditional`\n\n - `test`: `Expression` (required)\n - `consequent`: `Expression` (required)\n - `alternate`: `Expression` (required)\n\n---\n\n### continueStatement\n```javascript\nt.continueStatement(label)\n```\n\nSee also `t.isContinueStatement(node, opts)` and `t.assertContinueStatement(node, opts)`.\n\nAliases: `Statement`, `Terminatorless`, `CompletionStatement`\n\n - `label`: `Identifier` (default: `null`)\n\n---\n\n### debuggerStatement\n```javascript\nt.debuggerStatement()\n```\n\nSee also `t.isDebuggerStatement(node, opts)` and `t.assertDebuggerStatement(node, opts)`.\n\nAliases: `Statement`\n\n\n---\n\n### declareClass\n```javascript\nt.declareClass(id, typeParameters, extends, body)\n```\n\nSee also `t.isDeclareClass(node, opts)` and `t.assertDeclareClass(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `extends` (required)\n - `body` (required)\n\n---\n\n### declareFunction\n```javascript\nt.declareFunction(id)\n```\n\nSee also `t.isDeclareFunction(node, opts)` and `t.assertDeclareFunction(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n\n---\n\n### declareInterface\n```javascript\nt.declareInterface(id, typeParameters, extends, body)\n```\n\nSee also `t.isDeclareInterface(node, opts)` and `t.assertDeclareInterface(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `extends` (required)\n - `body` (required)\n\n---\n\n### declareModule\n```javascript\nt.declareModule(id, body)\n```\n\nSee also `t.isDeclareModule(node, opts)` and `t.assertDeclareModule(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `body` (required)\n\n---\n\n### declareModuleExports\n```javascript\nt.declareModuleExports(typeAnnotation)\n```\n\nSee also `t.isDeclareModuleExports(node, opts)` and `t.assertDeclareModuleExports(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `typeAnnotation` (required)\n\n---\n\n### declareTypeAlias\n```javascript\nt.declareTypeAlias(id, typeParameters, right)\n```\n\nSee also `t.isDeclareTypeAlias(node, opts)` and `t.assertDeclareTypeAlias(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `right` (required)\n\n---\n\n### declareVariable\n```javascript\nt.declareVariable(id)\n```\n\nSee also `t.isDeclareVariable(node, opts)` and `t.assertDeclareVariable(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n\n---\n\n### decorator\n```javascript\nt.decorator(expression)\n```\n\nSee also `t.isDecorator(node, opts)` and `t.assertDecorator(node, opts)`.\n\n - `expression`: `Expression` (required)\n\n---\n\n### directive\n```javascript\nt.directive(value)\n```\n\nSee also `t.isDirective(node, opts)` and `t.assertDirective(node, opts)`.\n\n - `value`: `DirectiveLiteral` (required)\n\n---\n\n### directiveLiteral\n```javascript\nt.directiveLiteral(value)\n```\n\nSee also `t.isDirectiveLiteral(node, opts)` and `t.assertDirectiveLiteral(node, opts)`.\n\n - `value`: `string` (required)\n\n---\n\n### doExpression\n```javascript\nt.doExpression(body)\n```\n\nSee also `t.isDoExpression(node, opts)` and `t.assertDoExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `body`: `BlockStatement` (required)\n\n---\n\n### doWhileStatement\n```javascript\nt.doWhileStatement(test, body)\n```\n\nSee also `t.isDoWhileStatement(node, opts)` and `t.assertDoWhileStatement(node, opts)`.\n\nAliases: `Statement`, `BlockParent`, `Loop`, `While`, `Scopable`\n\n - `test`: `Expression` (required)\n - `body`: `Statement` (required)\n\n---\n\n### emptyStatement\n```javascript\nt.emptyStatement()\n```\n\nSee also `t.isEmptyStatement(node, opts)` and `t.assertEmptyStatement(node, opts)`.\n\nAliases: `Statement`\n\n\n---\n\n### emptyTypeAnnotation\n```javascript\nt.emptyTypeAnnotation()\n```\n\nSee also `t.isEmptyTypeAnnotation(node, opts)` and `t.assertEmptyTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### existsTypeAnnotation\n```javascript\nt.existsTypeAnnotation()\n```\n\nSee also `t.isExistsTypeAnnotation(node, opts)` and `t.assertExistsTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n\n---\n\n### exportAllDeclaration\n```javascript\nt.exportAllDeclaration(source)\n```\n\nSee also `t.isExportAllDeclaration(node, opts)` and `t.assertExportAllDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`, `ModuleDeclaration`, `ExportDeclaration`\n\n - `source`: `StringLiteral` (required)\n\n---\n\n### exportDefaultDeclaration\n```javascript\nt.exportDefaultDeclaration(declaration)\n```\n\nSee also `t.isExportDefaultDeclaration(node, opts)` and `t.assertExportDefaultDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`, `ModuleDeclaration`, `ExportDeclaration`\n\n - `declaration`: `FunctionDeclaration | ClassDeclaration | Expression` (required)\n\n---\n\n### exportDefaultSpecifier\n```javascript\nt.exportDefaultSpecifier(exported)\n```\n\nSee also `t.isExportDefaultSpecifier(node, opts)` and `t.assertExportDefaultSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `exported`: `Identifier` (required)\n\n---\n\n### exportNamedDeclaration\n```javascript\nt.exportNamedDeclaration(declaration, specifiers, source)\n```\n\nSee also `t.isExportNamedDeclaration(node, opts)` and `t.assertExportNamedDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`, `ModuleDeclaration`, `ExportDeclaration`\n\n - `declaration`: `Declaration` (default: `null`)\n - `specifiers`: `Array<ExportSpecifier>` (required)\n - `source`: `StringLiteral` (default: `null`)\n\n---\n\n### exportNamespaceSpecifier\n```javascript\nt.exportNamespaceSpecifier(exported)\n```\n\nSee also `t.isExportNamespaceSpecifier(node, opts)` and `t.assertExportNamespaceSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `exported`: `Identifier` (required)\n\n---\n\n### exportSpecifier\n```javascript\nt.exportSpecifier(local, exported)\n```\n\nSee also `t.isExportSpecifier(node, opts)` and `t.assertExportSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `local`: `Identifier` (required)\n - `exported`: `Identifier` (required)\n\n---\n\n### expressionStatement\n```javascript\nt.expressionStatement(expression)\n```\n\nSee also `t.isExpressionStatement(node, opts)` and `t.assertExpressionStatement(node, opts)`.\n\nAliases: `Statement`, `ExpressionWrapper`\n\n - `expression`: `Expression` (required)\n\n---\n\n### file\n```javascript\nt.file(program, comments, tokens)\n```\n\nSee also `t.isFile(node, opts)` and `t.assertFile(node, opts)`.\n\n - `program`: `Program` (required)\n - `comments` (required)\n - `tokens` (required)\n\n---\n\n### forInStatement\n```javascript\nt.forInStatement(left, right, body)\n```\n\nSee also `t.isForInStatement(node, opts)` and `t.assertForInStatement(node, opts)`.\n\nAliases: `Scopable`, `Statement`, `For`, `BlockParent`, `Loop`, `ForXStatement`\n\n - `left`: `VariableDeclaration | LVal` (required)\n - `right`: `Expression` (required)\n - `body`: `Statement` (required)\n\n---\n\n### forOfStatement\n```javascript\nt.forOfStatement(left, right, body)\n```\n\nSee also `t.isForOfStatement(node, opts)` and `t.assertForOfStatement(node, opts)`.\n\nAliases: `Scopable`, `Statement`, `For`, `BlockParent`, `Loop`, `ForXStatement`\n\n - `left`: `VariableDeclaration | LVal` (required)\n - `right`: `Expression` (required)\n - `body`: `Statement` (required)\n - `await`: `boolean` (default: `false`)\n\n---\n\n### forStatement\n```javascript\nt.forStatement(init, test, update, body)\n```\n\nSee also `t.isForStatement(node, opts)` and `t.assertForStatement(node, opts)`.\n\nAliases: `Scopable`, `Statement`, `For`, `BlockParent`, `Loop`\n\n - `init`: `VariableDeclaration | Expression` (default: `null`)\n - `test`: `Expression` (default: `null`)\n - `update`: `Expression` (default: `null`)\n - `body`: `Statement` (required)\n\n---\n\n### functionDeclaration\n```javascript\nt.functionDeclaration(id, params, body, generator, async)\n```\n\nSee also `t.isFunctionDeclaration(node, opts)` and `t.assertFunctionDeclaration(node, opts)`.\n\nAliases: `Scopable`, `Function`, `BlockParent`, `FunctionParent`, `Statement`, `Pureish`, `Declaration`\n\n - `id`: `Identifier` (required)\n - `params`: `Array<LVal>` (required)\n - `body`: `BlockStatement` (required)\n - `generator`: `boolean` (default: `false`)\n - `async`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### functionExpression\n```javascript\nt.functionExpression(id, params, body, generator, async)\n```\n\nSee also `t.isFunctionExpression(node, opts)` and `t.assertFunctionExpression(node, opts)`.\n\nAliases: `Scopable`, `Function`, `BlockParent`, `FunctionParent`, `Expression`, `Pureish`\n\n - `id`: `Identifier` (default: `null`)\n - `params`: `Array<LVal>` (required)\n - `body`: `BlockStatement` (required)\n - `generator`: `boolean` (default: `false`)\n - `async`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### functionTypeAnnotation\n```javascript\nt.functionTypeAnnotation(typeParameters, params, rest, returnType)\n```\n\nSee also `t.isFunctionTypeAnnotation(node, opts)` and `t.assertFunctionTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `typeParameters` (required)\n - `params` (required)\n - `rest` (required)\n - `returnType` (required)\n\n---\n\n### functionTypeParam\n```javascript\nt.functionTypeParam(name, typeAnnotation)\n```\n\nSee also `t.isFunctionTypeParam(node, opts)` and `t.assertFunctionTypeParam(node, opts)`.\n\nAliases: `Flow`\n\n - `name` (required)\n - `typeAnnotation` (required)\n\n---\n\n### genericTypeAnnotation\n```javascript\nt.genericTypeAnnotation(id, typeParameters)\n```\n\nSee also `t.isGenericTypeAnnotation(node, opts)` and `t.assertGenericTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `id` (required)\n - `typeParameters` (required)\n\n---\n\n### identifier\n```javascript\nt.identifier(name)\n```\n\nSee also `t.isIdentifier(node, opts)` and `t.assertIdentifier(node, opts)`.\n\nAliases: `Expression`, `LVal`\n\n - `name``string` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n - `typeAnnotation` (default: `null`)\n\n---\n\n### ifStatement\n```javascript\nt.ifStatement(test, consequent, alternate)\n```\n\nSee also `t.isIfStatement(node, opts)` and `t.assertIfStatement(node, opts)`.\n\nAliases: `Statement`, `Conditional`\n\n - `test`: `Expression` (required)\n - `consequent`: `Statement` (required)\n - `alternate`: `Statement` (default: `null`)\n\n---\n\n### import\n```javascript\nt.import()\n```\n\nSee also `t.isImport(node, opts)` and `t.assertImport(node, opts)`.\n\nAliases: `Expression`\n\n\n---\n\n### importDeclaration\n```javascript\nt.importDeclaration(specifiers, source)\n```\n\nSee also `t.isImportDeclaration(node, opts)` and `t.assertImportDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`, `ModuleDeclaration`\n\n - `specifiers`: `Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>` (required)\n - `source`: `StringLiteral` (required)\n\n---\n\n### importDefaultSpecifier\n```javascript\nt.importDefaultSpecifier(local)\n```\n\nSee also `t.isImportDefaultSpecifier(node, opts)` and `t.assertImportDefaultSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `local`: `Identifier` (required)\n\n---\n\n### importNamespaceSpecifier\n```javascript\nt.importNamespaceSpecifier(local)\n```\n\nSee also `t.isImportNamespaceSpecifier(node, opts)` and `t.assertImportNamespaceSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `local`: `Identifier` (required)\n\n---\n\n### importSpecifier\n```javascript\nt.importSpecifier(local, imported)\n```\n\nSee also `t.isImportSpecifier(node, opts)` and `t.assertImportSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `local`: `Identifier` (required)\n - `imported`: `Identifier` (required)\n - `importKind`: `null | 'type' | 'typeof'` (default: `null`)\n\n---\n\n### interfaceDeclaration\n```javascript\nt.interfaceDeclaration(id, typeParameters, extends, body)\n```\n\nSee also `t.isInterfaceDeclaration(node, opts)` and `t.assertInterfaceDeclaration(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `extends` (required)\n - `body` (required)\n\n---\n\n### interfaceExtends\n```javascript\nt.interfaceExtends(id, typeParameters)\n```\n\nSee also `t.isInterfaceExtends(node, opts)` and `t.assertInterfaceExtends(node, opts)`.\n\nAliases: `Flow`\n\n - `id` (required)\n - `typeParameters` (required)\n\n---\n\n### intersectionTypeAnnotation\n```javascript\nt.intersectionTypeAnnotation(types)\n```\n\nSee also `t.isIntersectionTypeAnnotation(node, opts)` and `t.assertIntersectionTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `types` (required)\n\n---\n\n### jSXAttribute\n```javascript\nt.jSXAttribute(name, value)\n```\n\nSee also `t.isJSXAttribute(node, opts)` and `t.assertJSXAttribute(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `name`: `JSXIdentifier | JSXNamespacedName` (required)\n - `value`: `JSXElement | StringLiteral | JSXExpressionContainer` (default: `null`)\n\n---\n\n### jSXClosingElement\n```javascript\nt.jSXClosingElement(name)\n```\n\nSee also `t.isJSXClosingElement(node, opts)` and `t.assertJSXClosingElement(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `name`: `JSXIdentifier | JSXMemberExpression` (required)\n\n---\n\n### jSXElement\n```javascript\nt.jSXElement(openingElement, closingElement, children, selfClosing)\n```\n\nSee also `t.isJSXElement(node, opts)` and `t.assertJSXElement(node, opts)`.\n\nAliases: `JSX`, `Immutable`, `Expression`\n\n - `openingElement`: `JSXOpeningElement` (required)\n - `closingElement`: `JSXClosingElement` (default: `null`)\n - `children`: `Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement>` (required)\n - `selfClosing` (required)\n\n---\n\n### jSXEmptyExpression\n```javascript\nt.jSXEmptyExpression()\n```\n\nSee also `t.isJSXEmptyExpression(node, opts)` and `t.assertJSXEmptyExpression(node, opts)`.\n\nAliases: `JSX`, `Expression`\n\n\n---\n\n### jSXExpressionContainer\n```javascript\nt.jSXExpressionContainer(expression)\n```\n\nSee also `t.isJSXExpressionContainer(node, opts)` and `t.assertJSXExpressionContainer(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `expression`: `Expression` (required)\n\n---\n\n### jSXIdentifier\n```javascript\nt.jSXIdentifier(name)\n```\n\nSee also `t.isJSXIdentifier(node, opts)` and `t.assertJSXIdentifier(node, opts)`.\n\nAliases: `JSX`, `Expression`\n\n - `name`: `string` (required)\n\n---\n\n### jSXMemberExpression\n```javascript\nt.jSXMemberExpression(object, property)\n```\n\nSee also `t.isJSXMemberExpression(node, opts)` and `t.assertJSXMemberExpression(node, opts)`.\n\nAliases: `JSX`, `Expression`\n\n - `object`: `JSXMemberExpression | JSXIdentifier` (required)\n - `property`: `JSXIdentifier` (required)\n\n---\n\n### jSXNamespacedName\n```javascript\nt.jSXNamespacedName(namespace, name)\n```\n\nSee also `t.isJSXNamespacedName(node, opts)` and `t.assertJSXNamespacedName(node, opts)`.\n\nAliases: `JSX`\n\n - `namespace`: `JSXIdentifier` (required)\n - `name`: `JSXIdentifier` (required)\n\n---\n\n### jSXOpeningElement\n```javascript\nt.jSXOpeningElement(name, attributes, selfClosing)\n```\n\nSee also `t.isJSXOpeningElement(node, opts)` and `t.assertJSXOpeningElement(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `name`: `JSXIdentifier | JSXMemberExpression` (required)\n - `attributes`: `Array<JSXAttribute | JSXSpreadAttribute>` (required)\n - `selfClosing`: `boolean` (default: `false`)\n\n---\n\n### jSXSpreadAttribute\n```javascript\nt.jSXSpreadAttribute(argument)\n```\n\nSee also `t.isJSXSpreadAttribute(node, opts)` and `t.assertJSXSpreadAttribute(node, opts)`.\n\nAliases: `JSX`\n\n - `argument`: `Expression` (required)\n\n---\n\n### jSXSpreadChild\n```javascript\nt.jSXSpreadChild(expression)\n```\n\nSee also `t.isJSXSpreadChild(node, opts)` and `t.assertJSXSpreadChild(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `expression`: `Expression` (required)\n\n---\n\n### jSXText\n```javascript\nt.jSXText(value)\n```\n\nSee also `t.isJSXText(node, opts)` and `t.assertJSXText(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `value`: `string` (required)\n\n---\n\n### labeledStatement\n```javascript\nt.labeledStatement(label, body)\n```\n\nSee also `t.isLabeledStatement(node, opts)` and `t.assertLabeledStatement(node, opts)`.\n\nAliases: `Statement`\n\n - `label`: `Identifier` (required)\n - `body`: `Statement` (required)\n\n---\n\n### logicalExpression\n```javascript\nt.logicalExpression(operator, left, right)\n```\n\nSee also `t.isLogicalExpression(node, opts)` and `t.assertLogicalExpression(node, opts)`.\n\nAliases: `Binary`, `Expression`\n\n - `operator`: `'||' | '&&'` (required)\n - `left`: `Expression` (required)\n - `right`: `Expression` (required)\n\n---\n\n### memberExpression\n```javascript\nt.memberExpression(object, property, computed)\n```\n\nSee also `t.isMemberExpression(node, opts)` and `t.assertMemberExpression(node, opts)`.\n\nAliases: `Expression`, `LVal`\n\n - `object`: `Expression` (required)\n - `property`if computed then `Expression` else `Identifier` (required)\n - `computed`: `boolean` (default: `false`)\n\n---\n\n### metaProperty\n```javascript\nt.metaProperty(meta, property)\n```\n\nSee also `t.isMetaProperty(node, opts)` and `t.assertMetaProperty(node, opts)`.\n\nAliases: `Expression`\n\n - `meta`: `string` (required)\n - `property`: `string` (required)\n\n---\n\n### mixedTypeAnnotation\n```javascript\nt.mixedTypeAnnotation()\n```\n\nSee also `t.isMixedTypeAnnotation(node, opts)` and `t.assertMixedTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### newExpression\n```javascript\nt.newExpression(callee, arguments)\n```\n\nSee also `t.isNewExpression(node, opts)` and `t.assertNewExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `callee`: `Expression` (required)\n - `arguments`: `Array<Expression | SpreadElement>` (required)\n\n---\n\n### noop\n```javascript\nt.noop()\n```\n\nSee also `t.isNoop(node, opts)` and `t.assertNoop(node, opts)`.\n\n\n---\n\n### nullLiteral\n```javascript\nt.nullLiteral()\n```\n\nSee also `t.isNullLiteral(node, opts)` and `t.assertNullLiteral(node, opts)`.\n\nAliases: `Expression`, `Pureish`, `Literal`, `Immutable`\n\n\n---\n\n### nullLiteralTypeAnnotation\n```javascript\nt.nullLiteralTypeAnnotation()\n```\n\nSee also `t.isNullLiteralTypeAnnotation(node, opts)` and `t.assertNullLiteralTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### nullableTypeAnnotation\n```javascript\nt.nullableTypeAnnotation(typeAnnotation)\n```\n\nSee also `t.isNullableTypeAnnotation(node, opts)` and `t.assertNullableTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `typeAnnotation` (required)\n\n---\n\n### numberLiteralTypeAnnotation\n```javascript\nt.numberLiteralTypeAnnotation()\n```\n\nSee also `t.isNumberLiteralTypeAnnotation(node, opts)` and `t.assertNumberLiteralTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n\n---\n\n### numberTypeAnnotation\n```javascript\nt.numberTypeAnnotation()\n```\n\nSee also `t.isNumberTypeAnnotation(node, opts)` and `t.assertNumberTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### numericLiteral\n```javascript\nt.numericLiteral(value)\n```\n\nSee also `t.isNumericLiteral(node, opts)` and `t.assertNumericLiteral(node, opts)`.\n\nAliases: `Expression`, `Pureish`, `Literal`, `Immutable`\n\n - `value`: `number` (required)\n\n---\n\n### objectExpression\n```javascript\nt.objectExpression(properties)\n```\n\nSee also `t.isObjectExpression(node, opts)` and `t.assertObjectExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `properties`: `Array<ObjectMethod | ObjectProperty | SpreadElement>` (required)\n\n---\n\n### objectMethod\n```javascript\nt.objectMethod(kind, key, params, body, computed)\n```\n\nSee also `t.isObjectMethod(node, opts)` and `t.assertObjectMethod(node, opts)`.\n\nAliases: `UserWhitespacable`, `Function`, `Scopable`, `BlockParent`, `FunctionParent`, `Method`, `ObjectMember`\n\n - `kind`: `\"method\" | \"get\" | \"set\"` (default: `'method'`)\n - `key`if computed then `Expression` else `Identifier | Literal` (required)\n - `params` (required)\n - `body`: `BlockStatement` (required)\n - `computed`: `boolean` (default: `false`)\n - `async`: `boolean` (default: `false`)\n - `decorators`: `Array<Decorator>` (default: `null`)\n - `generator`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### objectPattern\n```javascript\nt.objectPattern(properties, typeAnnotation)\n```\n\nSee also `t.isObjectPattern(node, opts)` and `t.assertObjectPattern(node, opts)`.\n\nAliases: `Pattern`, `LVal`\n\n - `properties`: `Array<RestElement | Property>` (required)\n - `typeAnnotation` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### objectProperty\n```javascript\nt.objectProperty(key, value, computed, shorthand, decorators)\n```\n\nSee also `t.isObjectProperty(node, opts)` and `t.assertObjectProperty(node, opts)`.\n\nAliases: `UserWhitespacable`, `Property`, `ObjectMember`\n\n - `key`if computed then `Expression` else `Identifier | Literal` (required)\n - `value`: `Expression` (required)\n - `computed`: `boolean` (default: `false`)\n - `shorthand`: `boolean` (default: `false`)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### objectTypeAnnotation\n```javascript\nt.objectTypeAnnotation(properties, indexers, callProperties)\n```\n\nSee also `t.isObjectTypeAnnotation(node, opts)` and `t.assertObjectTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `properties` (required)\n - `indexers` (required)\n - `callProperties` (required)\n\n---\n\n### objectTypeCallProperty\n```javascript\nt.objectTypeCallProperty(value)\n```\n\nSee also `t.isObjectTypeCallProperty(node, opts)` and `t.assertObjectTypeCallProperty(node, opts)`.\n\nAliases: `Flow`, `UserWhitespacable`\n\n - `value` (required)\n\n---\n\n### objectTypeIndexer\n```javascript\nt.objectTypeIndexer(id, key, value)\n```\n\nSee also `t.isObjectTypeIndexer(node, opts)` and `t.assertObjectTypeIndexer(node, opts)`.\n\nAliases: `Flow`, `UserWhitespacable`\n\n - `id` (required)\n - `key` (required)\n - `value` (required)\n\n---\n\n### objectTypeProperty\n```javascript\nt.objectTypeProperty(key, value)\n```\n\nSee also `t.isObjectTypeProperty(node, opts)` and `t.assertObjectTypeProperty(node, opts)`.\n\nAliases: `Flow`, `UserWhitespacable`\n\n - `key` (required)\n - `value` (required)\n\n---\n\n### parenthesizedExpression\n```javascript\nt.parenthesizedExpression(expression)\n```\n\nSee also `t.isParenthesizedExpression(node, opts)` and `t.assertParenthesizedExpression(node, opts)`.\n\nAliases: `Expression`, `ExpressionWrapper`\n\n - `expression`: `Expression` (required)\n\n---\n\n### program\n```javascript\nt.program(body, directives)\n```\n\nSee also `t.isProgram(node, opts)` and `t.assertProgram(node, opts)`.\n\nAliases: `Scopable`, `BlockParent`, `Block`, `FunctionParent`\n\n - `body`: `Array<Statement>` (required)\n - `directives`: `Array<Directive>` (default: `[]`)\n\n---\n\n### qualifiedTypeIdentifier\n```javascript\nt.qualifiedTypeIdentifier(id, qualification)\n```\n\nSee also `t.isQualifiedTypeIdentifier(node, opts)` and `t.assertQualifiedTypeIdentifier(node, opts)`.\n\nAliases: `Flow`\n\n - `id` (required)\n - `qualification` (required)\n\n---\n\n### regExpLiteral\n```javascript\nt.regExpLiteral(pattern, flags)\n```\n\nSee also `t.isRegExpLiteral(node, opts)` and `t.assertRegExpLiteral(node, opts)`.\n\nAliases: `Expression`, `Literal`\n\n - `pattern`: `string` (required)\n - `flags`: `string` (default: `''`)\n\n---\n\n### restElement\n```javascript\nt.restElement(argument, typeAnnotation)\n```\n\nSee also `t.isRestElement(node, opts)` and `t.assertRestElement(node, opts)`.\n\nAliases: `LVal`\n\n - `argument`: `LVal` (required)\n - `typeAnnotation` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### returnStatement\n```javascript\nt.returnStatement(argument)\n```\n\nSee also `t.isReturnStatement(node, opts)` and `t.assertReturnStatement(node, opts)`.\n\nAliases: `Statement`, `Terminatorless`, `CompletionStatement`\n\n - `argument`: `Expression` (default: `null`)\n\n---\n\n### sequenceExpression\n```javascript\nt.sequenceExpression(expressions)\n```\n\nSee also `t.isSequenceExpression(node, opts)` and `t.assertSequenceExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `expressions`: `Array<Expression>` (required)\n\n---\n\n### spreadElement\n```javascript\nt.spreadElement(argument)\n```\n\nSee also `t.isSpreadElement(node, opts)` and `t.assertSpreadElement(node, opts)`.\n\nAliases: `UnaryLike`\n\n - `argument`: `Expression` (required)\n\n---\n\n### stringLiteral\n```javascript\nt.stringLiteral(value)\n```\n\nSee also `t.isStringLiteral(node, opts)` and `t.assertStringLiteral(node, opts)`.\n\nAliases: `Expression`, `Pureish`, `Literal`, `Immutable`\n\n - `value`: `string` (required)\n\n---\n\n### stringLiteralTypeAnnotation\n```javascript\nt.stringLiteralTypeAnnotation()\n```\n\nSee also `t.isStringLiteralTypeAnnotation(node, opts)` and `t.assertStringLiteralTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n\n---\n\n### stringTypeAnnotation\n```javascript\nt.stringTypeAnnotation()\n```\n\nSee also `t.isStringTypeAnnotation(node, opts)` and `t.assertStringTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### super\n```javascript\nt.super()\n```\n\nSee also `t.isSuper(node, opts)` and `t.assertSuper(node, opts)`.\n\nAliases: `Expression`\n\n\n---\n\n### switchCase\n```javascript\nt.switchCase(test, consequent)\n```\n\nSee also `t.isSwitchCase(node, opts)` and `t.assertSwitchCase(node, opts)`.\n\n - `test`: `Expression` (default: `null`)\n - `consequent`: `Array<Statement>` (required)\n\n---\n\n### switchStatement\n```javascript\nt.switchStatement(discriminant, cases)\n```\n\nSee also `t.isSwitchStatement(node, opts)` and `t.assertSwitchStatement(node, opts)`.\n\nAliases: `Statement`, `BlockParent`, `Scopable`\n\n - `discriminant`: `Expression` (required)\n - `cases`: `Array<SwitchCase>` (required)\n\n---\n\n### taggedTemplateExpression\n```javascript\nt.taggedTemplateExpression(tag, quasi)\n```\n\nSee also `t.isTaggedTemplateExpression(node, opts)` and `t.assertTaggedTemplateExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `tag`: `Expression` (required)\n - `quasi`: `TemplateLiteral` (required)\n\n---\n\n### templateElement\n```javascript\nt.templateElement(value, tail)\n```\n\nSee also `t.isTemplateElement(node, opts)` and `t.assertTemplateElement(node, opts)`.\n\n - `value` (required)\n - `tail`: `boolean` (default: `false`)\n\n---\n\n### templateLiteral\n```javascript\nt.templateLiteral(quasis, expressions)\n```\n\nSee also `t.isTemplateLiteral(node, opts)` and `t.assertTemplateLiteral(node, opts)`.\n\nAliases: `Expression`, `Literal`\n\n - `quasis`: `Array<TemplateElement>` (required)\n - `expressions`: `Array<Expression>` (required)\n\n---\n\n### thisExpression\n```javascript\nt.thisExpression()\n```\n\nSee also `t.isThisExpression(node, opts)` and `t.assertThisExpression(node, opts)`.\n\nAliases: `Expression`\n\n\n---\n\n### thisTypeAnnotation\n```javascript\nt.thisTypeAnnotation()\n```\n\nSee also `t.isThisTypeAnnotation(node, opts)` and `t.assertThisTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### throwStatement\n```javascript\nt.throwStatement(argument)\n```\n\nSee also `t.isThrowStatement(node, opts)` and `t.assertThrowStatement(node, opts)`.\n\nAliases: `Statement`, `Terminatorless`, `CompletionStatement`\n\n - `argument`: `Expression` (required)\n\n---\n\n### tryStatement\n```javascript\nt.tryStatement(block, handler, finalizer)\n```\n\nSee also `t.isTryStatement(node, opts)` and `t.assertTryStatement(node, opts)`.\n\nAliases: `Statement`\n\n - `block` (required)\n - `handler` (default: `null`)\n - `finalizer`: `BlockStatement` (default: `null`)\n - `body`: `BlockStatement` (default: `null`)\n\n---\n\n### tupleTypeAnnotation\n```javascript\nt.tupleTypeAnnotation(types)\n```\n\nSee also `t.isTupleTypeAnnotation(node, opts)` and `t.assertTupleTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `types` (required)\n\n---\n\n### typeAlias\n```javascript\nt.typeAlias(id, typeParameters, right)\n```\n\nSee also `t.isTypeAlias(node, opts)` and `t.assertTypeAlias(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `right` (required)\n\n---\n\n### typeAnnotation\n```javascript\nt.typeAnnotation(typeAnnotation)\n```\n\nSee also `t.isTypeAnnotation(node, opts)` and `t.assertTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `typeAnnotation` (required)\n\n---\n\n### typeCastExpression\n```javascript\nt.typeCastExpression(expression, typeAnnotation)\n```\n\nSee also `t.isTypeCastExpression(node, opts)` and `t.assertTypeCastExpression(node, opts)`.\n\nAliases: `Flow`, `ExpressionWrapper`, `Expression`\n\n - `expression` (required)\n - `typeAnnotation` (required)\n\n---\n\n### typeParameter\n```javascript\nt.typeParameter(bound)\n```\n\nSee also `t.isTypeParameter(node, opts)` and `t.assertTypeParameter(node, opts)`.\n\nAliases: `Flow`\n\n - `bound` (required)\n\n---\n\n### typeParameterDeclaration\n```javascript\nt.typeParameterDeclaration(params)\n```\n\nSee also `t.isTypeParameterDeclaration(node, opts)` and `t.assertTypeParameterDeclaration(node, opts)`.\n\nAliases: `Flow`\n\n - `params` (required)\n\n---\n\n### typeParameterInstantiation\n```javascript\nt.typeParameterInstantiation(params)\n```\n\nSee also `t.isTypeParameterInstantiation(node, opts)` and `t.assertTypeParameterInstantiation(node, opts)`.\n\nAliases: `Flow`\n\n - `params` (required)\n\n---\n\n### typeofTypeAnnotation\n```javascript\nt.typeofTypeAnnotation(argument)\n```\n\nSee also `t.isTypeofTypeAnnotation(node, opts)` and `t.assertTypeofTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `argument` (required)\n\n---\n\n### unaryExpression\n```javascript\nt.unaryExpression(operator, argument, prefix)\n```\n\nSee also `t.isUnaryExpression(node, opts)` and `t.assertUnaryExpression(node, opts)`.\n\nAliases: `UnaryLike`, `Expression`\n\n - `operator`: `'void' | 'delete' | '!' | '+' | '-' | '++' | '--' | '~' | 'typeof'` (required)\n - `argument`: `Expression` (required)\n - `prefix`: `boolean` (default: `true`)\n\n---\n\n### unionTypeAnnotation\n```javascript\nt.unionTypeAnnotation(types)\n```\n\nSee also `t.isUnionTypeAnnotation(node, opts)` and `t.assertUnionTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `types` (required)\n\n---\n\n### updateExpression\n```javascript\nt.updateExpression(operator, argument, prefix)\n```\n\nSee also `t.isUpdateExpression(node, opts)` and `t.assertUpdateExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `operator`: `'++' | '--'` (required)\n - `argument`: `Expression` (required)\n - `prefix`: `boolean` (default: `false`)\n\n---\n\n### variableDeclaration\n```javascript\nt.variableDeclaration(kind, declarations)\n```\n\nSee also `t.isVariableDeclaration(node, opts)` and `t.assertVariableDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`\n\n - `kind`: `\"var\" | \"let\" | \"const\"` (required)\n - `declarations`: `Array<VariableDeclarator>` (required)\n\n---\n\n### variableDeclarator\n```javascript\nt.variableDeclarator(id, init)\n```\n\nSee also `t.isVariableDeclarator(node, opts)` and `t.assertVariableDeclarator(node, opts)`.\n\n - `id`: `LVal` (required)\n - `init`: `Expression` (default: `null`)\n\n---\n\n### voidTypeAnnotation\n```javascript\nt.voidTypeAnnotation()\n```\n\nSee also `t.isVoidTypeAnnotation(node, opts)` and `t.assertVoidTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### whileStatement\n```javascript\nt.whileStatement(test, body)\n```\n\nSee also `t.isWhileStatement(node, opts)` and `t.assertWhileStatement(node, opts)`.\n\nAliases: `Statement`, `BlockParent`, `Loop`, `While`, `Scopable`\n\n - `test`: `Expression` (required)\n - `body`: `BlockStatement | Statement` (required)\n\n---\n\n### withStatement\n```javascript\nt.withStatement(object, body)\n```\n\nSee also `t.isWithStatement(node, opts)` and `t.assertWithStatement(node, opts)`.\n\nAliases: `Statement`\n\n - `object` (required)\n - `body`: `BlockStatement | Statement` (required)\n\n---\n\n### yieldExpression\n```javascript\nt.yieldExpression(argument, delegate)\n```\n\nSee also `t.isYieldExpression(node, opts)` and `t.assertYieldExpression(node, opts)`.\n\nAliases: `Expression`, `Terminatorless`\n\n - `argument`: `Expression` (default: `null`)\n - `delegate`: `boolean` (default: `false`)\n\n---\n\n\n<!-- end generated section -->\n\n","maintainers":[{"name":"andywer","email":"andy@dev.next-step-software.com"}],"time":{"modified":"2022-06-12T14:41:19.955Z","created":"2017-03-15T17:41:30.486Z","7.0.0-alpha.1":"2017-03-15T17:41:30.486Z"},"homepage":"https://babeljs.io/","repository":{"type":"git","url":"https://github.com/babel/babel/tree/master/packages/babel-types"},"author":{"name":"Sebastian McKenzie","email":"sebmck@gmail.com"},"license":"MIT","readmeFilename":"README.md"}