12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265 |
- import { Omit } from "../types";
- import * as K from "./kinds";
- export interface Printable {
- loc: K.SourceLocationKind | null;
- }
- export interface SourceLocation {
- start: K.PositionKind;
- end: K.PositionKind;
- source: string | null;
- }
- export interface Node extends Printable {
- type: string;
- comments: K.CommentKind[] | null;
- }
- export interface Comment extends Printable {
- value: string;
- leading: boolean;
- trailing: boolean;
- }
- export interface Position {
- line: number;
- column: number;
- }
- export interface File extends Omit<Node, "type"> {
- type: "File";
- program: K.ProgramKind;
- name: string | null;
- }
- export interface Program extends Omit<Node, "type"> {
- type: "Program";
- body: K.StatementKind[];
- directives: K.DirectiveKind[];
- interpreter: K.InterpreterDirectiveKind | null;
- }
- export interface Statement extends Node {
- }
- export interface Function extends Node {
- id: K.IdentifierKind | null;
- params: K.PatternKind[];
- body: K.BlockStatementKind;
- generator: boolean;
- async: boolean;
- expression: boolean;
- defaults: (K.ExpressionKind | null)[];
- rest: K.IdentifierKind | null;
- returnType: K.TypeAnnotationKind | K.TSTypeAnnotationKind | null;
- typeParameters: K.TypeParameterDeclarationKind | K.TSTypeParameterDeclarationKind | null;
- }
- export interface Expression extends Node {
- }
- export interface Pattern extends Node {
- }
- export interface Identifier extends Omit<Expression, "type">, Omit<Pattern, "type"> {
- type: "Identifier";
- name: string;
- optional: boolean;
- typeAnnotation: K.TypeAnnotationKind | K.TSTypeAnnotationKind | null;
- }
- export interface BlockStatement extends Omit<Statement, "type"> {
- type: "BlockStatement";
- body: K.StatementKind[];
- directives: K.DirectiveKind[];
- }
- export interface EmptyStatement extends Omit<Statement, "type"> {
- type: "EmptyStatement";
- }
- export interface ExpressionStatement extends Omit<Statement, "type"> {
- type: "ExpressionStatement";
- expression: K.ExpressionKind;
- }
- export interface IfStatement extends Omit<Statement, "type"> {
- type: "IfStatement";
- test: K.ExpressionKind;
- consequent: K.StatementKind;
- alternate: K.StatementKind | null;
- }
- export interface LabeledStatement extends Omit<Statement, "type"> {
- type: "LabeledStatement";
- label: K.IdentifierKind;
- body: K.StatementKind;
- }
- export interface BreakStatement extends Omit<Statement, "type"> {
- type: "BreakStatement";
- label: K.IdentifierKind | null;
- }
- export interface ContinueStatement extends Omit<Statement, "type"> {
- type: "ContinueStatement";
- label: K.IdentifierKind | null;
- }
- export interface WithStatement extends Omit<Statement, "type"> {
- type: "WithStatement";
- object: K.ExpressionKind;
- body: K.StatementKind;
- }
- export interface SwitchStatement extends Omit<Statement, "type"> {
- type: "SwitchStatement";
- discriminant: K.ExpressionKind;
- cases: K.SwitchCaseKind[];
- lexical: boolean;
- }
- export interface SwitchCase extends Omit<Node, "type"> {
- type: "SwitchCase";
- test: K.ExpressionKind | null;
- consequent: K.StatementKind[];
- }
- export interface ReturnStatement extends Omit<Statement, "type"> {
- type: "ReturnStatement";
- argument: K.ExpressionKind | null;
- }
- export interface ThrowStatement extends Omit<Statement, "type"> {
- type: "ThrowStatement";
- argument: K.ExpressionKind;
- }
- export interface TryStatement extends Omit<Statement, "type"> {
- type: "TryStatement";
- block: K.BlockStatementKind;
- handler: K.CatchClauseKind | null;
- handlers: K.CatchClauseKind[];
- guardedHandlers: K.CatchClauseKind[];
- finalizer: K.BlockStatementKind | null;
- }
- export interface CatchClause extends Omit<Node, "type"> {
- type: "CatchClause";
- param: K.PatternKind | null;
- guard: K.ExpressionKind | null;
- body: K.BlockStatementKind;
- }
- export interface WhileStatement extends Omit<Statement, "type"> {
- type: "WhileStatement";
- test: K.ExpressionKind;
- body: K.StatementKind;
- }
- export interface DoWhileStatement extends Omit<Statement, "type"> {
- type: "DoWhileStatement";
- body: K.StatementKind;
- test: K.ExpressionKind;
- }
- export interface ForStatement extends Omit<Statement, "type"> {
- type: "ForStatement";
- init: K.VariableDeclarationKind | K.ExpressionKind | null;
- test: K.ExpressionKind | null;
- update: K.ExpressionKind | null;
- body: K.StatementKind;
- }
- export interface Declaration extends Statement {
- }
- export interface VariableDeclaration extends Omit<Declaration, "type"> {
- type: "VariableDeclaration";
- kind: "var" | "let" | "const";
- declarations: (K.VariableDeclaratorKind | K.IdentifierKind)[];
- }
- export interface ForInStatement extends Omit<Statement, "type"> {
- type: "ForInStatement";
- left: K.VariableDeclarationKind | K.ExpressionKind;
- right: K.ExpressionKind;
- body: K.StatementKind;
- }
- export interface DebuggerStatement extends Omit<Statement, "type"> {
- type: "DebuggerStatement";
- }
- export interface FunctionDeclaration extends Omit<Function, "type" | "id">, Omit<Declaration, "type"> {
- type: "FunctionDeclaration";
- id: K.IdentifierKind;
- }
- export interface FunctionExpression extends Omit<Function, "type">, Omit<Expression, "type"> {
- type: "FunctionExpression";
- }
- export interface VariableDeclarator extends Omit<Node, "type"> {
- type: "VariableDeclarator";
- id: K.PatternKind;
- init: K.ExpressionKind | null;
- }
- export interface ThisExpression extends Omit<Expression, "type"> {
- type: "ThisExpression";
- }
- export interface ArrayExpression extends Omit<Expression, "type"> {
- type: "ArrayExpression";
- elements: (K.ExpressionKind | K.SpreadElementKind | K.RestElementKind | null)[];
- }
- export interface ObjectExpression extends Omit<Expression, "type"> {
- type: "ObjectExpression";
- properties: (K.PropertyKind | K.ObjectMethodKind | K.ObjectPropertyKind | K.SpreadPropertyKind | K.SpreadElementKind)[];
- }
- export interface Property extends Omit<Node, "type"> {
- type: "Property";
- kind: "init" | "get" | "set";
- key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
- value: K.ExpressionKind | K.PatternKind;
- method: boolean;
- shorthand: boolean;
- computed: boolean;
- decorators: K.DecoratorKind[] | null;
- }
- export interface Literal extends Omit<Expression, "type"> {
- type: "Literal";
- value: string | boolean | null | number | RegExp;
- regex: {
- pattern: string;
- flags: string;
- } | null;
- }
- export interface SequenceExpression extends Omit<Expression, "type"> {
- type: "SequenceExpression";
- expressions: K.ExpressionKind[];
- }
- export interface UnaryExpression extends Omit<Expression, "type"> {
- type: "UnaryExpression";
- operator: "-" | "+" | "!" | "~" | "typeof" | "void" | "delete";
- argument: K.ExpressionKind;
- prefix: boolean;
- }
- export interface BinaryExpression extends Omit<Expression, "type"> {
- type: "BinaryExpression";
- operator: "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "**" | "&" | "|" | "^" | "in" | "instanceof";
- left: K.ExpressionKind;
- right: K.ExpressionKind;
- }
- export interface AssignmentExpression extends Omit<Expression, "type"> {
- type: "AssignmentExpression";
- operator: "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=";
- left: K.PatternKind | K.MemberExpressionKind;
- right: K.ExpressionKind;
- }
- export interface MemberExpression extends Omit<Expression, "type"> {
- type: "MemberExpression";
- object: K.ExpressionKind;
- property: K.IdentifierKind | K.ExpressionKind;
- computed: boolean;
- }
- export interface UpdateExpression extends Omit<Expression, "type"> {
- type: "UpdateExpression";
- operator: "++" | "--";
- argument: K.ExpressionKind;
- prefix: boolean;
- }
- export interface LogicalExpression extends Omit<Expression, "type"> {
- type: "LogicalExpression";
- operator: "||" | "&&" | "??";
- left: K.ExpressionKind;
- right: K.ExpressionKind;
- }
- export interface ConditionalExpression extends Omit<Expression, "type"> {
- type: "ConditionalExpression";
- test: K.ExpressionKind;
- consequent: K.ExpressionKind;
- alternate: K.ExpressionKind;
- }
- export interface NewExpression extends Omit<Expression, "type"> {
- type: "NewExpression";
- callee: K.ExpressionKind;
- arguments: (K.ExpressionKind | K.SpreadElementKind)[];
- }
- export interface CallExpression extends Omit<Expression, "type"> {
- type: "CallExpression";
- callee: K.ExpressionKind;
- arguments: (K.ExpressionKind | K.SpreadElementKind)[];
- }
- export interface RestElement extends Omit<Pattern, "type"> {
- type: "RestElement";
- argument: K.PatternKind;
- typeAnnotation: K.TypeAnnotationKind | K.TSTypeAnnotationKind | null;
- }
- export interface TypeAnnotation extends Omit<Node, "type"> {
- type: "TypeAnnotation";
- typeAnnotation: K.FlowTypeKind;
- }
- export interface TSTypeAnnotation extends Omit<Node, "type"> {
- type: "TSTypeAnnotation";
- typeAnnotation: K.TSTypeKind | K.TSTypeAnnotationKind;
- }
- export interface SpreadElementPattern extends Omit<Pattern, "type"> {
- type: "SpreadElementPattern";
- argument: K.PatternKind;
- }
- export interface ArrowFunctionExpression extends Omit<Function, "type" | "id" | "body" | "generator">, Omit<Expression, "type"> {
- type: "ArrowFunctionExpression";
- id: null;
- body: K.BlockStatementKind | K.ExpressionKind;
- generator: false;
- }
- export interface ForOfStatement extends Omit<Statement, "type"> {
- type: "ForOfStatement";
- left: K.VariableDeclarationKind | K.PatternKind;
- right: K.ExpressionKind;
- body: K.StatementKind;
- }
- export interface YieldExpression extends Omit<Expression, "type"> {
- type: "YieldExpression";
- argument: K.ExpressionKind | null;
- delegate: boolean;
- }
- export interface GeneratorExpression extends Omit<Expression, "type"> {
- type: "GeneratorExpression";
- body: K.ExpressionKind;
- blocks: K.ComprehensionBlockKind[];
- filter: K.ExpressionKind | null;
- }
- export interface ComprehensionBlock extends Omit<Node, "type"> {
- type: "ComprehensionBlock";
- left: K.PatternKind;
- right: K.ExpressionKind;
- each: boolean;
- }
- export interface ComprehensionExpression extends Omit<Expression, "type"> {
- type: "ComprehensionExpression";
- body: K.ExpressionKind;
- blocks: K.ComprehensionBlockKind[];
- filter: K.ExpressionKind | null;
- }
- export interface ObjectProperty extends Omit<Node, "type"> {
- shorthand: boolean;
- type: "ObjectProperty";
- key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
- value: K.ExpressionKind | K.PatternKind;
- accessibility: K.LiteralKind | null;
- computed: boolean;
- }
- export interface PropertyPattern extends Omit<Pattern, "type"> {
- type: "PropertyPattern";
- key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
- pattern: K.PatternKind;
- computed: boolean;
- }
- export interface ObjectPattern extends Omit<Pattern, "type"> {
- type: "ObjectPattern";
- properties: (K.PropertyKind | K.PropertyPatternKind | K.SpreadPropertyPatternKind | K.SpreadPropertyKind | K.ObjectPropertyKind | K.RestPropertyKind)[];
- typeAnnotation: K.TypeAnnotationKind | K.TSTypeAnnotationKind | null;
- decorators: K.DecoratorKind[] | null;
- }
- export interface ArrayPattern extends Omit<Pattern, "type"> {
- type: "ArrayPattern";
- elements: (K.PatternKind | K.SpreadElementKind | null)[];
- }
- export interface MethodDefinition extends Omit<Declaration, "type"> {
- type: "MethodDefinition";
- kind: "constructor" | "method" | "get" | "set";
- key: K.ExpressionKind;
- value: K.FunctionKind;
- computed: boolean;
- static: boolean;
- decorators: K.DecoratorKind[] | null;
- }
- export interface SpreadElement extends Omit<Node, "type"> {
- type: "SpreadElement";
- argument: K.ExpressionKind;
- }
- export interface AssignmentPattern extends Omit<Pattern, "type"> {
- type: "AssignmentPattern";
- left: K.PatternKind;
- right: K.ExpressionKind;
- }
- export interface ClassPropertyDefinition extends Omit<Declaration, "type"> {
- type: "ClassPropertyDefinition";
- definition: K.MethodDefinitionKind | K.VariableDeclaratorKind | K.ClassPropertyDefinitionKind | K.ClassPropertyKind;
- }
- export interface ClassProperty extends Omit<Declaration, "type"> {
- type: "ClassProperty";
- key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
- computed: boolean;
- value: K.ExpressionKind | null;
- static: boolean;
- typeAnnotation: K.TypeAnnotationKind | K.TSTypeAnnotationKind | null;
- variance: K.VarianceKind | "plus" | "minus" | null;
- access: "public" | "private" | "protected" | undefined;
- }
- export interface ClassBody extends Omit<Declaration, "type"> {
- type: "ClassBody";
- body: (K.MethodDefinitionKind | K.VariableDeclaratorKind | K.ClassPropertyDefinitionKind | K.ClassPropertyKind | K.ClassPrivatePropertyKind | K.ClassMethodKind | K.ClassPrivateMethodKind | K.TSDeclareMethodKind | K.TSCallSignatureDeclarationKind | K.TSConstructSignatureDeclarationKind | K.TSIndexSignatureKind | K.TSMethodSignatureKind | K.TSPropertySignatureKind)[];
- }
- export interface ClassDeclaration extends Omit<Declaration, "type"> {
- type: "ClassDeclaration";
- id: K.IdentifierKind | null;
- body: K.ClassBodyKind;
- superClass: K.ExpressionKind | null;
- typeParameters: K.TypeParameterDeclarationKind | K.TSTypeParameterDeclarationKind | null;
- superTypeParameters: K.TypeParameterInstantiationKind | K.TSTypeParameterInstantiationKind | null;
- implements: K.ClassImplementsKind[] | K.TSExpressionWithTypeArgumentsKind[];
- }
- export interface ClassExpression extends Omit<Expression, "type"> {
- type: "ClassExpression";
- id: K.IdentifierKind | null;
- body: K.ClassBodyKind;
- superClass: K.ExpressionKind | null;
- typeParameters: K.TypeParameterDeclarationKind | K.TSTypeParameterDeclarationKind | null;
- superTypeParameters: K.TypeParameterInstantiationKind | K.TSTypeParameterInstantiationKind | null;
- implements: K.ClassImplementsKind[] | K.TSExpressionWithTypeArgumentsKind[];
- }
- export interface Specifier extends Node {
- }
- export interface ModuleSpecifier extends Specifier {
- local: K.IdentifierKind | null;
- id: K.IdentifierKind | null;
- name: K.IdentifierKind | null;
- }
- export interface ImportSpecifier extends Omit<ModuleSpecifier, "type"> {
- type: "ImportSpecifier";
- imported: K.IdentifierKind;
- }
- export interface ImportNamespaceSpecifier extends Omit<ModuleSpecifier, "type"> {
- type: "ImportNamespaceSpecifier";
- }
- export interface ImportDefaultSpecifier extends Omit<ModuleSpecifier, "type"> {
- type: "ImportDefaultSpecifier";
- }
- export interface ImportDeclaration extends Omit<Declaration, "type"> {
- type: "ImportDeclaration";
- specifiers: (K.ImportSpecifierKind | K.ImportNamespaceSpecifierKind | K.ImportDefaultSpecifierKind)[];
- source: K.LiteralKind;
- importKind: "value" | "type";
- }
- export interface TaggedTemplateExpression extends Omit<Expression, "type"> {
- type: "TaggedTemplateExpression";
- tag: K.ExpressionKind;
- quasi: K.TemplateLiteralKind;
- }
- export interface TemplateLiteral extends Omit<Expression, "type"> {
- type: "TemplateLiteral";
- quasis: K.TemplateElementKind[];
- expressions: K.ExpressionKind[];
- }
- export interface TemplateElement extends Omit<Node, "type"> {
- type: "TemplateElement";
- value: {
- cooked: string;
- raw: string;
- };
- tail: boolean;
- }
- export interface SpreadProperty extends Omit<Node, "type"> {
- type: "SpreadProperty";
- argument: K.ExpressionKind;
- }
- export interface SpreadPropertyPattern extends Omit<Pattern, "type"> {
- type: "SpreadPropertyPattern";
- argument: K.PatternKind;
- }
- export interface AwaitExpression extends Omit<Expression, "type"> {
- type: "AwaitExpression";
- argument: K.ExpressionKind | null;
- all: boolean;
- }
- export interface JSXAttribute extends Omit<Node, "type"> {
- type: "JSXAttribute";
- name: K.JSXIdentifierKind | K.JSXNamespacedNameKind;
- value: K.LiteralKind | K.JSXExpressionContainerKind | null;
- }
- export interface JSXIdentifier extends Omit<Identifier, "type" | "name"> {
- type: "JSXIdentifier";
- name: string;
- }
- export interface JSXNamespacedName extends Omit<Node, "type"> {
- type: "JSXNamespacedName";
- namespace: K.JSXIdentifierKind;
- name: K.JSXIdentifierKind;
- }
- export interface JSXExpressionContainer extends Omit<Expression, "type"> {
- type: "JSXExpressionContainer";
- expression: K.ExpressionKind;
- }
- export interface JSXMemberExpression extends Omit<MemberExpression, "type" | "object" | "property" | "computed"> {
- type: "JSXMemberExpression";
- object: K.JSXIdentifierKind | K.JSXMemberExpressionKind;
- property: K.JSXIdentifierKind;
- computed: boolean;
- }
- export interface JSXSpreadAttribute extends Omit<Node, "type"> {
- type: "JSXSpreadAttribute";
- argument: K.ExpressionKind;
- }
- export interface JSXElement extends Omit<Expression, "type"> {
- type: "JSXElement";
- openingElement: K.JSXOpeningElementKind;
- closingElement: K.JSXClosingElementKind | null;
- children: (K.JSXElementKind | K.JSXExpressionContainerKind | K.JSXFragmentKind | K.JSXTextKind | K.LiteralKind)[];
- name: K.JSXIdentifierKind | K.JSXNamespacedNameKind | K.JSXMemberExpressionKind;
- selfClosing: boolean;
- attributes: (K.JSXAttributeKind | K.JSXSpreadAttributeKind)[];
- }
- export interface JSXOpeningElement extends Omit<Node, "type"> {
- type: "JSXOpeningElement";
- name: K.JSXIdentifierKind | K.JSXNamespacedNameKind | K.JSXMemberExpressionKind;
- attributes: (K.JSXAttributeKind | K.JSXSpreadAttributeKind)[];
- selfClosing: boolean;
- }
- export interface JSXClosingElement extends Omit<Node, "type"> {
- type: "JSXClosingElement";
- name: K.JSXIdentifierKind | K.JSXNamespacedNameKind | K.JSXMemberExpressionKind;
- }
- export interface JSXFragment extends Omit<Expression, "type"> {
- type: "JSXFragment";
- openingElement: K.JSXOpeningFragmentKind;
- closingElement: K.JSXClosingFragmentKind;
- children: (K.JSXElementKind | K.JSXExpressionContainerKind | K.JSXFragmentKind | K.JSXTextKind | K.LiteralKind)[];
- }
- export interface JSXText extends Omit<Literal, "type" | "value"> {
- type: "JSXText";
- value: string;
- }
- export interface JSXOpeningFragment extends Omit<Node, "type"> {
- type: "JSXOpeningFragment";
- }
- export interface JSXClosingFragment extends Omit<Node, "type"> {
- type: "JSXClosingFragment";
- }
- export interface JSXEmptyExpression extends Omit<Expression, "type"> {
- type: "JSXEmptyExpression";
- }
- export interface JSXSpreadChild extends Omit<Expression, "type"> {
- type: "JSXSpreadChild";
- expression: K.ExpressionKind;
- }
- export interface TypeParameterDeclaration extends Omit<Node, "type"> {
- type: "TypeParameterDeclaration";
- params: K.TypeParameterKind[];
- }
- export interface TSTypeParameterDeclaration extends Omit<Declaration, "type"> {
- type: "TSTypeParameterDeclaration";
- params: K.TSTypeParameterKind[];
- }
- export interface TypeParameterInstantiation extends Omit<Node, "type"> {
- type: "TypeParameterInstantiation";
- params: K.FlowTypeKind[];
- }
- export interface TSTypeParameterInstantiation extends Omit<Node, "type"> {
- type: "TSTypeParameterInstantiation";
- params: K.TSTypeKind[];
- }
- export interface ClassImplements extends Omit<Node, "type"> {
- type: "ClassImplements";
- id: K.IdentifierKind;
- superClass: K.ExpressionKind | null;
- typeParameters: K.TypeParameterInstantiationKind | null;
- }
- export interface TSType extends Node {
- }
- export interface TSHasOptionalTypeParameterInstantiation {
- typeParameters: K.TSTypeParameterInstantiationKind | null;
- }
- export interface TSExpressionWithTypeArguments extends Omit<TSType, "type">, TSHasOptionalTypeParameterInstantiation {
- type: "TSExpressionWithTypeArguments";
- expression: K.IdentifierKind | K.TSQualifiedNameKind;
- }
- export interface Flow extends Node {
- }
- export interface FlowType extends Flow {
- }
- export interface AnyTypeAnnotation extends Omit<FlowType, "type"> {
- type: "AnyTypeAnnotation";
- }
- export interface EmptyTypeAnnotation extends Omit<FlowType, "type"> {
- type: "EmptyTypeAnnotation";
- }
- export interface MixedTypeAnnotation extends Omit<FlowType, "type"> {
- type: "MixedTypeAnnotation";
- }
- export interface VoidTypeAnnotation extends Omit<FlowType, "type"> {
- type: "VoidTypeAnnotation";
- }
- export interface NumberTypeAnnotation extends Omit<FlowType, "type"> {
- type: "NumberTypeAnnotation";
- }
- export interface NumberLiteralTypeAnnotation extends Omit<FlowType, "type"> {
- type: "NumberLiteralTypeAnnotation";
- value: number;
- raw: string;
- }
- export interface NumericLiteralTypeAnnotation extends Omit<FlowType, "type"> {
- type: "NumericLiteralTypeAnnotation";
- value: number;
- raw: string;
- }
- export interface StringTypeAnnotation extends Omit<FlowType, "type"> {
- type: "StringTypeAnnotation";
- }
- export interface StringLiteralTypeAnnotation extends Omit<FlowType, "type"> {
- type: "StringLiteralTypeAnnotation";
- value: string;
- raw: string;
- }
- export interface BooleanTypeAnnotation extends Omit<FlowType, "type"> {
- type: "BooleanTypeAnnotation";
- }
- export interface BooleanLiteralTypeAnnotation extends Omit<FlowType, "type"> {
- type: "BooleanLiteralTypeAnnotation";
- value: boolean;
- raw: string;
- }
- export interface NullableTypeAnnotation extends Omit<FlowType, "type"> {
- type: "NullableTypeAnnotation";
- typeAnnotation: K.FlowTypeKind;
- }
- export interface NullLiteralTypeAnnotation extends Omit<FlowType, "type"> {
- type: "NullLiteralTypeAnnotation";
- }
- export interface NullTypeAnnotation extends Omit<FlowType, "type"> {
- type: "NullTypeAnnotation";
- }
- export interface ThisTypeAnnotation extends Omit<FlowType, "type"> {
- type: "ThisTypeAnnotation";
- }
- export interface ExistsTypeAnnotation extends Omit<FlowType, "type"> {
- type: "ExistsTypeAnnotation";
- }
- export interface ExistentialTypeParam extends Omit<FlowType, "type"> {
- type: "ExistentialTypeParam";
- }
- export interface FunctionTypeAnnotation extends Omit<FlowType, "type"> {
- type: "FunctionTypeAnnotation";
- params: K.FunctionTypeParamKind[];
- returnType: K.FlowTypeKind;
- rest: K.FunctionTypeParamKind | null;
- typeParameters: K.TypeParameterDeclarationKind | null;
- }
- export interface FunctionTypeParam extends Omit<Node, "type"> {
- type: "FunctionTypeParam";
- name: K.IdentifierKind;
- typeAnnotation: K.FlowTypeKind;
- optional: boolean;
- }
- export interface ArrayTypeAnnotation extends Omit<FlowType, "type"> {
- type: "ArrayTypeAnnotation";
- elementType: K.FlowTypeKind;
- }
- export interface ObjectTypeAnnotation extends Omit<FlowType, "type"> {
- type: "ObjectTypeAnnotation";
- properties: (K.ObjectTypePropertyKind | K.ObjectTypeSpreadPropertyKind)[];
- indexers: K.ObjectTypeIndexerKind[];
- callProperties: K.ObjectTypeCallPropertyKind[];
- inexact: boolean | undefined;
- exact: boolean;
- internalSlots: K.ObjectTypeInternalSlotKind[];
- }
- export interface ObjectTypeProperty extends Omit<Node, "type"> {
- type: "ObjectTypeProperty";
- key: K.LiteralKind | K.IdentifierKind;
- value: K.FlowTypeKind;
- optional: boolean;
- variance: K.VarianceKind | "plus" | "minus" | null;
- }
- export interface ObjectTypeSpreadProperty extends Omit<Node, "type"> {
- type: "ObjectTypeSpreadProperty";
- argument: K.FlowTypeKind;
- }
- export interface ObjectTypeIndexer extends Omit<Node, "type"> {
- type: "ObjectTypeIndexer";
- id: K.IdentifierKind;
- key: K.FlowTypeKind;
- value: K.FlowTypeKind;
- variance: K.VarianceKind | "plus" | "minus" | null;
- }
- export interface ObjectTypeCallProperty extends Omit<Node, "type"> {
- type: "ObjectTypeCallProperty";
- value: K.FunctionTypeAnnotationKind;
- static: boolean;
- }
- export interface ObjectTypeInternalSlot extends Omit<Node, "type"> {
- type: "ObjectTypeInternalSlot";
- id: K.IdentifierKind;
- value: K.FlowTypeKind;
- optional: boolean;
- static: boolean;
- method: boolean;
- }
- export interface Variance extends Omit<Node, "type"> {
- type: "Variance";
- kind: "plus" | "minus";
- }
- export interface QualifiedTypeIdentifier extends Omit<Node, "type"> {
- type: "QualifiedTypeIdentifier";
- qualification: K.IdentifierKind | K.QualifiedTypeIdentifierKind;
- id: K.IdentifierKind;
- }
- export interface GenericTypeAnnotation extends Omit<FlowType, "type"> {
- type: "GenericTypeAnnotation";
- id: K.IdentifierKind | K.QualifiedTypeIdentifierKind;
- typeParameters: K.TypeParameterInstantiationKind | null;
- }
- export interface MemberTypeAnnotation extends Omit<FlowType, "type"> {
- type: "MemberTypeAnnotation";
- object: K.IdentifierKind;
- property: K.MemberTypeAnnotationKind | K.GenericTypeAnnotationKind;
- }
- export interface UnionTypeAnnotation extends Omit<FlowType, "type"> {
- type: "UnionTypeAnnotation";
- types: K.FlowTypeKind[];
- }
- export interface IntersectionTypeAnnotation extends Omit<FlowType, "type"> {
- type: "IntersectionTypeAnnotation";
- types: K.FlowTypeKind[];
- }
- export interface TypeofTypeAnnotation extends Omit<FlowType, "type"> {
- type: "TypeofTypeAnnotation";
- argument: K.FlowTypeKind;
- }
- export interface TypeParameter extends Omit<FlowType, "type"> {
- type: "TypeParameter";
- name: string;
- variance: K.VarianceKind | "plus" | "minus" | null;
- bound: K.TypeAnnotationKind | null;
- }
- export interface InterfaceTypeAnnotation extends Omit<FlowType, "type"> {
- type: "InterfaceTypeAnnotation";
- body: K.ObjectTypeAnnotationKind;
- extends: K.InterfaceExtendsKind[] | null;
- }
- export interface InterfaceExtends extends Omit<Node, "type"> {
- type: "InterfaceExtends";
- id: K.IdentifierKind;
- typeParameters: K.TypeParameterInstantiationKind | null;
- }
- export interface InterfaceDeclaration extends Omit<Declaration, "type"> {
- type: "InterfaceDeclaration";
- id: K.IdentifierKind;
- typeParameters: K.TypeParameterDeclarationKind | null;
- body: K.ObjectTypeAnnotationKind;
- extends: K.InterfaceExtendsKind[];
- }
- export interface DeclareInterface extends Omit<InterfaceDeclaration, "type"> {
- type: "DeclareInterface";
- }
- export interface TypeAlias extends Omit<Declaration, "type"> {
- type: "TypeAlias";
- id: K.IdentifierKind;
- typeParameters: K.TypeParameterDeclarationKind | null;
- right: K.FlowTypeKind;
- }
- export interface OpaqueType extends Omit<Declaration, "type"> {
- type: "OpaqueType";
- id: K.IdentifierKind;
- typeParameters: K.TypeParameterDeclarationKind | null;
- impltype: K.FlowTypeKind;
- supertype: K.FlowTypeKind;
- }
- export interface DeclareTypeAlias extends Omit<TypeAlias, "type"> {
- type: "DeclareTypeAlias";
- }
- export interface DeclareOpaqueType extends Omit<TypeAlias, "type"> {
- type: "DeclareOpaqueType";
- }
- export interface TypeCastExpression extends Omit<Expression, "type"> {
- type: "TypeCastExpression";
- expression: K.ExpressionKind;
- typeAnnotation: K.TypeAnnotationKind;
- }
- export interface TupleTypeAnnotation extends Omit<FlowType, "type"> {
- type: "TupleTypeAnnotation";
- types: K.FlowTypeKind[];
- }
- export interface DeclareVariable extends Omit<Statement, "type"> {
- type: "DeclareVariable";
- id: K.IdentifierKind;
- }
- export interface DeclareFunction extends Omit<Statement, "type"> {
- type: "DeclareFunction";
- id: K.IdentifierKind;
- }
- export interface DeclareClass extends Omit<InterfaceDeclaration, "type"> {
- type: "DeclareClass";
- }
- export interface DeclareModule extends Omit<Statement, "type"> {
- type: "DeclareModule";
- id: K.IdentifierKind | K.LiteralKind;
- body: K.BlockStatementKind;
- }
- export interface DeclareModuleExports extends Omit<Statement, "type"> {
- type: "DeclareModuleExports";
- typeAnnotation: K.TypeAnnotationKind;
- }
- export interface DeclareExportDeclaration extends Omit<Declaration, "type"> {
- type: "DeclareExportDeclaration";
- default: boolean;
- declaration: K.DeclareVariableKind | K.DeclareFunctionKind | K.DeclareClassKind | K.FlowTypeKind | null;
- specifiers: (K.ExportSpecifierKind | K.ExportBatchSpecifierKind)[];
- source: K.LiteralKind | null;
- }
- export interface ExportSpecifier extends Omit<ModuleSpecifier, "type"> {
- type: "ExportSpecifier";
- exported: K.IdentifierKind;
- }
- export interface ExportBatchSpecifier extends Omit<Specifier, "type"> {
- type: "ExportBatchSpecifier";
- }
- export interface DeclareExportAllDeclaration extends Omit<Declaration, "type"> {
- type: "DeclareExportAllDeclaration";
- source: K.LiteralKind | null;
- }
- export interface FlowPredicate extends Flow {
- }
- export interface InferredPredicate extends Omit<FlowPredicate, "type"> {
- type: "InferredPredicate";
- }
- export interface DeclaredPredicate extends Omit<FlowPredicate, "type"> {
- type: "DeclaredPredicate";
- value: K.ExpressionKind;
- }
- export interface ExportDeclaration extends Omit<Declaration, "type"> {
- type: "ExportDeclaration";
- default: boolean;
- declaration: K.DeclarationKind | K.ExpressionKind | null;
- specifiers: (K.ExportSpecifierKind | K.ExportBatchSpecifierKind)[];
- source: K.LiteralKind | null;
- }
- export interface Block extends Comment {
- type: "Block";
- }
- export interface Line extends Comment {
- type: "Line";
- }
- export interface Noop extends Omit<Statement, "type"> {
- type: "Noop";
- }
- export interface DoExpression extends Omit<Expression, "type"> {
- type: "DoExpression";
- body: K.StatementKind[];
- }
- export interface Super extends Omit<Expression, "type"> {
- type: "Super";
- }
- export interface BindExpression extends Omit<Expression, "type"> {
- type: "BindExpression";
- object: K.ExpressionKind | null;
- callee: K.ExpressionKind;
- }
- export interface Decorator extends Omit<Node, "type"> {
- type: "Decorator";
- expression: K.ExpressionKind;
- }
- export interface MetaProperty extends Omit<Expression, "type"> {
- type: "MetaProperty";
- meta: K.IdentifierKind;
- property: K.IdentifierKind;
- }
- export interface ParenthesizedExpression extends Omit<Expression, "type"> {
- type: "ParenthesizedExpression";
- expression: K.ExpressionKind;
- }
- export interface ExportDefaultDeclaration extends Omit<Declaration, "type"> {
- type: "ExportDefaultDeclaration";
- declaration: K.DeclarationKind | K.ExpressionKind;
- }
- export interface ExportNamedDeclaration extends Omit<Declaration, "type"> {
- type: "ExportNamedDeclaration";
- declaration: K.DeclarationKind | null;
- specifiers: K.ExportSpecifierKind[];
- source: K.LiteralKind | null;
- }
- export interface ExportNamespaceSpecifier extends Omit<Specifier, "type"> {
- type: "ExportNamespaceSpecifier";
- exported: K.IdentifierKind;
- }
- export interface ExportDefaultSpecifier extends Omit<Specifier, "type"> {
- type: "ExportDefaultSpecifier";
- exported: K.IdentifierKind;
- }
- export interface ExportAllDeclaration extends Omit<Declaration, "type"> {
- type: "ExportAllDeclaration";
- exported: K.IdentifierKind | null;
- source: K.LiteralKind;
- }
- export interface CommentBlock extends Comment {
- type: "CommentBlock";
- }
- export interface CommentLine extends Comment {
- type: "CommentLine";
- }
- export interface Directive extends Omit<Node, "type"> {
- type: "Directive";
- value: K.DirectiveLiteralKind;
- }
- export interface DirectiveLiteral extends Omit<Node, "type">, Omit<Expression, "type"> {
- type: "DirectiveLiteral";
- value: string;
- }
- export interface InterpreterDirective extends Omit<Node, "type"> {
- type: "InterpreterDirective";
- value: string;
- }
- export interface StringLiteral extends Omit<Literal, "type" | "value"> {
- type: "StringLiteral";
- value: string;
- }
- export interface NumericLiteral extends Omit<Literal, "type" | "value"> {
- type: "NumericLiteral";
- value: number;
- raw: string | null;
- extra: {
- rawValue: number;
- raw: string;
- };
- }
- export interface BigIntLiteral extends Omit<Literal, "type" | "value"> {
- type: "BigIntLiteral";
- value: string | number;
- extra: {
- rawValue: string;
- raw: string;
- };
- }
- export interface NullLiteral extends Omit<Literal, "type" | "value"> {
- type: "NullLiteral";
- value: null;
- }
- export interface BooleanLiteral extends Omit<Literal, "type" | "value"> {
- type: "BooleanLiteral";
- value: boolean;
- }
- export interface RegExpLiteral extends Omit<Literal, "type" | "value"> {
- type: "RegExpLiteral";
- pattern: string;
- flags: string;
- value: RegExp;
- }
- export interface ObjectMethod extends Omit<Node, "type">, Omit<Function, "type" | "params" | "body" | "generator" | "async"> {
- type: "ObjectMethod";
- kind: "method" | "get" | "set";
- key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
- params: K.PatternKind[];
- body: K.BlockStatementKind;
- computed: boolean;
- generator: boolean;
- async: boolean;
- accessibility: K.LiteralKind | null;
- decorators: K.DecoratorKind[] | null;
- }
- export interface ClassPrivateProperty extends Omit<ClassProperty, "type" | "key" | "value"> {
- type: "ClassPrivateProperty";
- key: K.PrivateNameKind;
- value: K.ExpressionKind | null;
- }
- export interface ClassMethod extends Omit<Declaration, "type">, Omit<Function, "type" | "body"> {
- type: "ClassMethod";
- key: K.LiteralKind | K.IdentifierKind | K.ExpressionKind;
- kind: "get" | "set" | "method" | "constructor";
- body: K.BlockStatementKind;
- computed: boolean;
- static: boolean | null;
- abstract: boolean | null;
- access: "public" | "private" | "protected" | null;
- accessibility: "public" | "private" | "protected" | null;
- decorators: K.DecoratorKind[] | null;
- optional: boolean | null;
- }
- export interface ClassPrivateMethod extends Omit<Declaration, "type">, Omit<Function, "type" | "body"> {
- type: "ClassPrivateMethod";
- key: K.PrivateNameKind;
- kind: "get" | "set" | "method" | "constructor";
- body: K.BlockStatementKind;
- computed: boolean;
- static: boolean | null;
- abstract: boolean | null;
- access: "public" | "private" | "protected" | null;
- accessibility: "public" | "private" | "protected" | null;
- decorators: K.DecoratorKind[] | null;
- optional: boolean | null;
- }
- export interface PrivateName extends Omit<Expression, "type">, Omit<Pattern, "type"> {
- type: "PrivateName";
- id: K.IdentifierKind;
- }
- export interface RestProperty extends Omit<Node, "type"> {
- type: "RestProperty";
- argument: K.ExpressionKind;
- }
- export interface ForAwaitStatement extends Omit<Statement, "type"> {
- type: "ForAwaitStatement";
- left: K.VariableDeclarationKind | K.ExpressionKind;
- right: K.ExpressionKind;
- body: K.StatementKind;
- }
- export interface Import extends Omit<Expression, "type"> {
- type: "Import";
- }
- export interface TSQualifiedName extends Omit<Node, "type"> {
- type: "TSQualifiedName";
- left: K.IdentifierKind | K.TSQualifiedNameKind;
- right: K.IdentifierKind | K.TSQualifiedNameKind;
- }
- export interface TSTypeReference extends Omit<TSType, "type">, TSHasOptionalTypeParameterInstantiation {
- type: "TSTypeReference";
- typeName: K.IdentifierKind | K.TSQualifiedNameKind;
- }
- export interface TSHasOptionalTypeParameters {
- typeParameters: K.TSTypeParameterDeclarationKind | null | undefined;
- }
- export interface TSHasOptionalTypeAnnotation {
- typeAnnotation: K.TSTypeAnnotationKind | null;
- }
- export interface TSAsExpression extends Omit<Expression, "type">, Omit<Pattern, "type"> {
- type: "TSAsExpression";
- expression: K.ExpressionKind;
- typeAnnotation: K.TSTypeKind;
- extra: {
- parenthesized: boolean;
- } | null;
- }
- export interface TSNonNullExpression extends Omit<Expression, "type">, Omit<Pattern, "type"> {
- type: "TSNonNullExpression";
- expression: K.ExpressionKind;
- }
- export interface TSAnyKeyword extends Omit<TSType, "type"> {
- type: "TSAnyKeyword";
- }
- export interface TSBigIntKeyword extends Omit<TSType, "type"> {
- type: "TSBigIntKeyword";
- }
- export interface TSBooleanKeyword extends Omit<TSType, "type"> {
- type: "TSBooleanKeyword";
- }
- export interface TSNeverKeyword extends Omit<TSType, "type"> {
- type: "TSNeverKeyword";
- }
- export interface TSNullKeyword extends Omit<TSType, "type"> {
- type: "TSNullKeyword";
- }
- export interface TSNumberKeyword extends Omit<TSType, "type"> {
- type: "TSNumberKeyword";
- }
- export interface TSObjectKeyword extends Omit<TSType, "type"> {
- type: "TSObjectKeyword";
- }
- export interface TSStringKeyword extends Omit<TSType, "type"> {
- type: "TSStringKeyword";
- }
- export interface TSSymbolKeyword extends Omit<TSType, "type"> {
- type: "TSSymbolKeyword";
- }
- export interface TSUndefinedKeyword extends Omit<TSType, "type"> {
- type: "TSUndefinedKeyword";
- }
- export interface TSUnknownKeyword extends Omit<TSType, "type"> {
- type: "TSUnknownKeyword";
- }
- export interface TSVoidKeyword extends Omit<TSType, "type"> {
- type: "TSVoidKeyword";
- }
- export interface TSThisType extends Omit<TSType, "type"> {
- type: "TSThisType";
- }
- export interface TSArrayType extends Omit<TSType, "type"> {
- type: "TSArrayType";
- elementType: K.TSTypeKind;
- }
- export interface TSLiteralType extends Omit<TSType, "type"> {
- type: "TSLiteralType";
- literal: K.NumericLiteralKind | K.StringLiteralKind | K.BooleanLiteralKind | K.TemplateLiteralKind | K.UnaryExpressionKind;
- }
- export interface TSUnionType extends Omit<TSType, "type"> {
- type: "TSUnionType";
- types: K.TSTypeKind[];
- }
- export interface TSIntersectionType extends Omit<TSType, "type"> {
- type: "TSIntersectionType";
- types: K.TSTypeKind[];
- }
- export interface TSConditionalType extends Omit<TSType, "type"> {
- type: "TSConditionalType";
- checkType: K.TSTypeKind;
- extendsType: K.TSTypeKind;
- trueType: K.TSTypeKind;
- falseType: K.TSTypeKind;
- }
- export interface TSInferType extends Omit<TSType, "type"> {
- type: "TSInferType";
- typeParameter: K.TSTypeParameterKind;
- }
- export interface TSTypeParameter extends Omit<Identifier, "type" | "name"> {
- type: "TSTypeParameter";
- name: string;
- constraint: K.TSTypeKind | undefined;
- default: K.TSTypeKind | undefined;
- }
- export interface TSParenthesizedType extends Omit<TSType, "type"> {
- type: "TSParenthesizedType";
- typeAnnotation: K.TSTypeKind;
- }
- export interface TSFunctionType extends Omit<TSType, "type">, TSHasOptionalTypeParameters, TSHasOptionalTypeAnnotation {
- type: "TSFunctionType";
- parameters: (K.IdentifierKind | K.RestElementKind | K.ArrayPatternKind | K.ObjectPatternKind)[];
- }
- export interface TSConstructorType extends Omit<TSType, "type">, TSHasOptionalTypeParameters, TSHasOptionalTypeAnnotation {
- type: "TSConstructorType";
- parameters: (K.IdentifierKind | K.RestElementKind | K.ArrayPatternKind | K.ObjectPatternKind)[];
- }
- export interface TSDeclareFunction extends Omit<Declaration, "type">, TSHasOptionalTypeParameters {
- type: "TSDeclareFunction";
- declare: boolean;
- async: boolean;
- generator: boolean;
- id: K.IdentifierKind | null;
- params: K.PatternKind[];
- returnType: K.TSTypeAnnotationKind | K.NoopKind | null;
- }
- export interface TSDeclareMethod extends Omit<Declaration, "type">, TSHasOptionalTypeParameters {
- type: "TSDeclareMethod";
- async: boolean;
- generator: boolean;
- params: K.PatternKind[];
- abstract: boolean;
- accessibility: "public" | "private" | "protected" | undefined;
- static: boolean;
- computed: boolean;
- optional: boolean;
- key: K.IdentifierKind | K.StringLiteralKind | K.NumericLiteralKind | K.ExpressionKind;
- kind: "get" | "set" | "method" | "constructor";
- access: "public" | "private" | "protected" | undefined;
- decorators: K.DecoratorKind[] | null;
- returnType: K.TSTypeAnnotationKind | K.NoopKind | null;
- }
- export interface TSMappedType extends Omit<TSType, "type"> {
- type: "TSMappedType";
- readonly: boolean | "+" | "-";
- typeParameter: K.TSTypeParameterKind;
- optional: boolean | "+" | "-";
- typeAnnotation: K.TSTypeKind | null;
- }
- export interface TSTupleType extends Omit<TSType, "type"> {
- type: "TSTupleType";
- elementTypes: K.TSTypeKind[];
- }
- export interface TSRestType extends Omit<TSType, "type"> {
- type: "TSRestType";
- typeAnnotation: K.TSTypeKind;
- }
- export interface TSOptionalType extends Omit<TSType, "type"> {
- type: "TSOptionalType";
- typeAnnotation: K.TSTypeKind;
- }
- export interface TSIndexedAccessType extends Omit<TSType, "type"> {
- type: "TSIndexedAccessType";
- objectType: K.TSTypeKind;
- indexType: K.TSTypeKind;
- }
- export interface TSTypeOperator extends Omit<TSType, "type"> {
- type: "TSTypeOperator";
- operator: string;
- typeAnnotation: K.TSTypeKind;
- }
- export interface TSIndexSignature extends Omit<Declaration, "type">, TSHasOptionalTypeAnnotation {
- type: "TSIndexSignature";
- parameters: K.IdentifierKind[];
- readonly: boolean;
- }
- export interface TSPropertySignature extends Omit<Declaration, "type">, TSHasOptionalTypeAnnotation {
- type: "TSPropertySignature";
- key: K.ExpressionKind;
- computed: boolean;
- readonly: boolean;
- optional: boolean;
- initializer: K.ExpressionKind | null;
- }
- export interface TSMethodSignature extends Omit<Declaration, "type">, TSHasOptionalTypeParameters, TSHasOptionalTypeAnnotation {
- type: "TSMethodSignature";
- key: K.ExpressionKind;
- computed: boolean;
- optional: boolean;
- parameters: (K.IdentifierKind | K.RestElementKind | K.ArrayPatternKind | K.ObjectPatternKind)[];
- }
- export interface TSTypePredicate extends Omit<TSTypeAnnotation, "type" | "typeAnnotation"> {
- type: "TSTypePredicate";
- parameterName: K.IdentifierKind | K.TSThisTypeKind;
- typeAnnotation: K.TSTypeAnnotationKind;
- }
- export interface TSCallSignatureDeclaration extends Omit<Declaration, "type">, TSHasOptionalTypeParameters, TSHasOptionalTypeAnnotation {
- type: "TSCallSignatureDeclaration";
- parameters: (K.IdentifierKind | K.RestElementKind | K.ArrayPatternKind | K.ObjectPatternKind)[];
- }
- export interface TSConstructSignatureDeclaration extends Omit<Declaration, "type">, TSHasOptionalTypeParameters, TSHasOptionalTypeAnnotation {
- type: "TSConstructSignatureDeclaration";
- parameters: (K.IdentifierKind | K.RestElementKind | K.ArrayPatternKind | K.ObjectPatternKind)[];
- }
- export interface TSEnumMember extends Omit<Node, "type"> {
- type: "TSEnumMember";
- id: K.IdentifierKind | K.StringLiteralKind;
- initializer: K.ExpressionKind | null;
- }
- export interface TSTypeQuery extends Omit<TSType, "type"> {
- type: "TSTypeQuery";
- exprName: K.IdentifierKind | K.TSQualifiedNameKind | K.TSImportTypeKind;
- }
- export interface TSImportType extends Omit<TSType, "type">, TSHasOptionalTypeParameterInstantiation {
- type: "TSImportType";
- argument: K.StringLiteralKind;
- qualifier: K.IdentifierKind | K.TSQualifiedNameKind | undefined;
- }
- export interface TSTypeLiteral extends Omit<TSType, "type"> {
- type: "TSTypeLiteral";
- members: (K.TSCallSignatureDeclarationKind | K.TSConstructSignatureDeclarationKind | K.TSIndexSignatureKind | K.TSMethodSignatureKind | K.TSPropertySignatureKind)[];
- }
- export interface TSTypeAssertion extends Omit<Expression, "type">, Omit<Pattern, "type"> {
- type: "TSTypeAssertion";
- typeAnnotation: K.TSTypeKind;
- expression: K.ExpressionKind;
- extra: {
- parenthesized: boolean;
- } | null;
- }
- export interface TSEnumDeclaration extends Omit<Declaration, "type"> {
- type: "TSEnumDeclaration";
- id: K.IdentifierKind;
- const: boolean;
- declare: boolean;
- members: K.TSEnumMemberKind[];
- initializer: K.ExpressionKind | null;
- }
- export interface TSTypeAliasDeclaration extends Omit<Declaration, "type">, TSHasOptionalTypeParameters {
- type: "TSTypeAliasDeclaration";
- id: K.IdentifierKind;
- declare: boolean;
- typeAnnotation: K.TSTypeKind;
- }
- export interface TSModuleBlock extends Omit<Node, "type"> {
- type: "TSModuleBlock";
- body: K.StatementKind[];
- }
- export interface TSModuleDeclaration extends Omit<Declaration, "type"> {
- type: "TSModuleDeclaration";
- id: K.StringLiteralKind | K.IdentifierKind | K.TSQualifiedNameKind;
- declare: boolean;
- global: boolean;
- body: K.TSModuleBlockKind | K.TSModuleDeclarationKind | null;
- }
- export interface TSImportEqualsDeclaration extends Omit<Declaration, "type"> {
- type: "TSImportEqualsDeclaration";
- id: K.IdentifierKind;
- isExport: boolean;
- moduleReference: K.IdentifierKind | K.TSQualifiedNameKind | K.TSExternalModuleReferenceKind;
- }
- export interface TSExternalModuleReference extends Omit<Declaration, "type"> {
- type: "TSExternalModuleReference";
- expression: K.StringLiteralKind;
- }
- export interface TSExportAssignment extends Omit<Statement, "type"> {
- type: "TSExportAssignment";
- expression: K.ExpressionKind;
- }
- export interface TSNamespaceExportDeclaration extends Omit<Declaration, "type"> {
- type: "TSNamespaceExportDeclaration";
- id: K.IdentifierKind;
- }
- export interface TSInterfaceBody extends Omit<Node, "type"> {
- type: "TSInterfaceBody";
- body: (K.TSCallSignatureDeclarationKind | K.TSConstructSignatureDeclarationKind | K.TSIndexSignatureKind | K.TSMethodSignatureKind | K.TSPropertySignatureKind)[];
- }
- export interface TSInterfaceDeclaration extends Omit<Declaration, "type">, TSHasOptionalTypeParameters {
- type: "TSInterfaceDeclaration";
- id: K.IdentifierKind | K.TSQualifiedNameKind;
- declare: boolean;
- extends: K.TSExpressionWithTypeArgumentsKind[] | null;
- body: K.TSInterfaceBodyKind;
- }
- export interface TSParameterProperty extends Omit<Pattern, "type"> {
- type: "TSParameterProperty";
- accessibility: "public" | "private" | "protected" | undefined;
- readonly: boolean;
- parameter: K.IdentifierKind | K.AssignmentPatternKind;
- }
- export interface OptionalMemberExpression extends Omit<MemberExpression, "type"> {
- type: "OptionalMemberExpression";
- optional: boolean;
- }
- export interface OptionalCallExpression extends Omit<CallExpression, "type"> {
- type: "OptionalCallExpression";
- optional: boolean;
- }
- export declare type ASTNode = File | Program | Identifier | BlockStatement | EmptyStatement | ExpressionStatement | IfStatement | LabeledStatement | BreakStatement | ContinueStatement | WithStatement | SwitchStatement | SwitchCase | ReturnStatement | ThrowStatement | TryStatement | CatchClause | WhileStatement | DoWhileStatement | ForStatement | VariableDeclaration | ForInStatement | DebuggerStatement | FunctionDeclaration | FunctionExpression | VariableDeclarator | ThisExpression | ArrayExpression | ObjectExpression | Property | Literal | SequenceExpression | UnaryExpression | BinaryExpression | AssignmentExpression | MemberExpression | UpdateExpression | LogicalExpression | ConditionalExpression | NewExpression | CallExpression | RestElement | TypeAnnotation | TSTypeAnnotation | SpreadElementPattern | ArrowFunctionExpression | ForOfStatement | YieldExpression | GeneratorExpression | ComprehensionBlock | ComprehensionExpression | ObjectProperty | PropertyPattern | ObjectPattern | ArrayPattern | MethodDefinition | SpreadElement | AssignmentPattern | ClassPropertyDefinition | ClassProperty | ClassBody | ClassDeclaration | ClassExpression | ImportSpecifier | ImportNamespaceSpecifier | ImportDefaultSpecifier | ImportDeclaration | TaggedTemplateExpression | TemplateLiteral | TemplateElement | SpreadProperty | SpreadPropertyPattern | AwaitExpression | JSXAttribute | JSXIdentifier | JSXNamespacedName | JSXExpressionContainer | JSXMemberExpression | JSXSpreadAttribute | JSXElement | JSXOpeningElement | JSXClosingElement | JSXFragment | JSXText | JSXOpeningFragment | JSXClosingFragment | JSXEmptyExpression | JSXSpreadChild | TypeParameterDeclaration | TSTypeParameterDeclaration | TypeParameterInstantiation | TSTypeParameterInstantiation | ClassImplements | TSExpressionWithTypeArguments | AnyTypeAnnotation | EmptyTypeAnnotation | MixedTypeAnnotation | VoidTypeAnnotation | NumberTypeAnnotation | NumberLiteralTypeAnnotation | NumericLiteralTypeAnnotation | StringTypeAnnotation | StringLiteralTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation | NullableTypeAnnotation | NullLiteralTypeAnnotation | NullTypeAnnotation | ThisTypeAnnotation | ExistsTypeAnnotation | ExistentialTypeParam | FunctionTypeAnnotation | FunctionTypeParam | ArrayTypeAnnotation | ObjectTypeAnnotation | ObjectTypeProperty | ObjectTypeSpreadProperty | ObjectTypeIndexer | ObjectTypeCallProperty | ObjectTypeInternalSlot | Variance | QualifiedTypeIdentifier | GenericTypeAnnotation | MemberTypeAnnotation | UnionTypeAnnotation | IntersectionTypeAnnotation | TypeofTypeAnnotation | TypeParameter | InterfaceTypeAnnotation | InterfaceExtends | InterfaceDeclaration | DeclareInterface | TypeAlias | OpaqueType | DeclareTypeAlias | DeclareOpaqueType | TypeCastExpression | TupleTypeAnnotation | DeclareVariable | DeclareFunction | DeclareClass | DeclareModule | DeclareModuleExports | DeclareExportDeclaration | ExportSpecifier | ExportBatchSpecifier | DeclareExportAllDeclaration | InferredPredicate | DeclaredPredicate | ExportDeclaration | Block | Line | Noop | DoExpression | Super | BindExpression | Decorator | MetaProperty | ParenthesizedExpression | ExportDefaultDeclaration | ExportNamedDeclaration | ExportNamespaceSpecifier | ExportDefaultSpecifier | ExportAllDeclaration | CommentBlock | CommentLine | Directive | DirectiveLiteral | InterpreterDirective | StringLiteral | NumericLiteral | BigIntLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | ObjectMethod | ClassPrivateProperty | ClassMethod | ClassPrivateMethod | PrivateName | RestProperty | ForAwaitStatement | Import | TSQualifiedName | TSTypeReference | TSAsExpression | TSNonNullExpression | TSAnyKeyword | TSBigIntKeyword | TSBooleanKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSArrayType | TSLiteralType | TSUnionType | TSIntersectionType | TSConditionalType | TSInferType | TSTypeParameter | TSParenthesizedType | TSFunctionType | TSConstructorType | TSDeclareFunction | TSDeclareMethod | TSMappedType | TSTupleType | TSRestType | TSOptionalType | TSIndexedAccessType | TSTypeOperator | TSIndexSignature | TSPropertySignature | TSMethodSignature | TSTypePredicate | TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSEnumMember | TSTypeQuery | TSImportType | TSTypeLiteral | TSTypeAssertion | TSEnumDeclaration | TSTypeAliasDeclaration | TSModuleBlock | TSModuleDeclaration | TSImportEqualsDeclaration | TSExternalModuleReference | TSExportAssignment | TSNamespaceExportDeclaration | TSInterfaceBody | TSInterfaceDeclaration | TSParameterProperty | OptionalMemberExpression | OptionalCallExpression;
|