Skip to content

⬅️ Back to Table of Contents

📄 estree-to-ts-node-types.ts

📊 Analysis Summary

Metric Count
📦 Imports 3
📐 Interfaces 1
📑 Type Aliases 1

📚 Table of Contents

🛠️ File Location:

📂 packages/typescript-estree/src/ts-estree/estree-to-ts-node-types.ts

📦 Imports

Name Source
AST_NODE_TYPES @typescript-eslint/types
TSESTree @typescript-eslint/types
TSNode ./ts-nodes

Interfaces

EstreeToTsNodeTypes

Interface Code
export interface EstreeToTsNodeTypes {
  [AST_NODE_TYPES.AccessorProperty]: ts.PropertyDeclaration;
  [AST_NODE_TYPES.ArrayExpression]: ts.ArrayLiteralExpression;
  [AST_NODE_TYPES.ArrayPattern]:
    | ts.ArrayBindingPattern
    | ts.ArrayLiteralExpression;
  [AST_NODE_TYPES.ArrowFunctionExpression]: ts.ArrowFunction;
  [AST_NODE_TYPES.AssignmentExpression]: ts.BinaryExpression;
  [AST_NODE_TYPES.AssignmentPattern]:
    | ts.BinaryExpression
    | ts.BindingElement
    | ts.ParameterDeclaration
    | ts.ShorthandPropertyAssignment;
  [AST_NODE_TYPES.AwaitExpression]: ts.AwaitExpression;
  [AST_NODE_TYPES.BinaryExpression]: ts.BinaryExpression;
  [AST_NODE_TYPES.BlockStatement]: ts.Block;
  [AST_NODE_TYPES.BreakStatement]: ts.BreakStatement;
  [AST_NODE_TYPES.CallExpression]: ts.CallExpression;
  [AST_NODE_TYPES.CatchClause]: ts.CatchClause;
  [AST_NODE_TYPES.ChainExpression]:
    | ts.CallExpression
    | ts.ElementAccessExpression
    | ts.NonNullExpression
    | ts.PropertyAccessExpression;
  [AST_NODE_TYPES.ClassBody]: ts.ClassDeclaration | ts.ClassExpression;
  [AST_NODE_TYPES.ClassDeclaration]: ts.ClassDeclaration;
  [AST_NODE_TYPES.ClassExpression]: ts.ClassExpression;
  [AST_NODE_TYPES.ConditionalExpression]: ts.ConditionalExpression;
  [AST_NODE_TYPES.ContinueStatement]: ts.ContinueStatement;
  [AST_NODE_TYPES.DebuggerStatement]: ts.DebuggerStatement;
  [AST_NODE_TYPES.Decorator]: ts.Decorator;
  [AST_NODE_TYPES.DoWhileStatement]: ts.DoStatement;
  [AST_NODE_TYPES.EmptyStatement]: ts.EmptyStatement;
  [AST_NODE_TYPES.ExportAllDeclaration]: ts.ExportDeclaration;
  [AST_NODE_TYPES.ExportDefaultDeclaration]:
    | ts.ClassDeclaration
    | ts.ClassExpression
    | ts.EnumDeclaration
    | ts.ExportAssignment
    | ts.FunctionDeclaration
    | ts.InterfaceDeclaration
    | ts.ModuleDeclaration
    | ts.TypeAliasDeclaration
    | ts.VariableStatement;
  [AST_NODE_TYPES.ExportNamedDeclaration]:
    | ts.ClassDeclaration
    | ts.ClassExpression
    | ts.EnumDeclaration
    | ts.ExportDeclaration
    | ts.FunctionDeclaration
    | ts.ImportEqualsDeclaration
    | ts.InterfaceDeclaration
    | ts.ModuleDeclaration
    | ts.TypeAliasDeclaration
    | ts.VariableStatement;
  [AST_NODE_TYPES.ExportSpecifier]: ts.ExportSpecifier;
  [AST_NODE_TYPES.ExpressionStatement]: ts.ExpressionStatement;
  [AST_NODE_TYPES.ForInStatement]: ts.ForInStatement;
  [AST_NODE_TYPES.ForOfStatement]: ts.ForOfStatement;
  [AST_NODE_TYPES.ForStatement]: ts.ForStatement;
  [AST_NODE_TYPES.FunctionDeclaration]: ts.FunctionDeclaration;
  [AST_NODE_TYPES.FunctionExpression]:
    | ts.ConstructorDeclaration
    | ts.FunctionExpression
    | ts.GetAccessorDeclaration
    | ts.MethodDeclaration
    | ts.SetAccessorDeclaration;
  [AST_NODE_TYPES.Identifier]:
    | ts.ConstructorDeclaration
    | ts.Identifier
    | ts.Token<ts.SyntaxKind.ImportKeyword | ts.SyntaxKind.NewKeyword>;
  [AST_NODE_TYPES.IfStatement]: ts.IfStatement;
  [AST_NODE_TYPES.PrivateIdentifier]: ts.PrivateIdentifier;
  [AST_NODE_TYPES.PropertyDefinition]: ts.PropertyDeclaration;
  // eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
  [AST_NODE_TYPES.ImportAttribute]: 'ImportAttribute' extends keyof typeof ts
    ? ts.ImportAttribute
    : // eslint-disable-next-line @typescript-eslint/no-deprecated
      ts.AssertEntry;
  [AST_NODE_TYPES.ImportDeclaration]: ts.ImportDeclaration;
  [AST_NODE_TYPES.ImportDefaultSpecifier]: ts.ImportClause;
  [AST_NODE_TYPES.ImportExpression]: ts.CallExpression;
  [AST_NODE_TYPES.ImportNamespaceSpecifier]: ts.NamespaceImport;
  [AST_NODE_TYPES.ImportSpecifier]: ts.ImportSpecifier;
  [AST_NODE_TYPES.JSXAttribute]: ts.JsxAttribute;
  [AST_NODE_TYPES.JSXClosingElement]: ts.JsxClosingElement;
  [AST_NODE_TYPES.JSXClosingFragment]: ts.JsxClosingFragment;
  [AST_NODE_TYPES.JSXElement]: ts.JsxElement | ts.JsxSelfClosingElement;
  [AST_NODE_TYPES.JSXEmptyExpression]: ts.JsxExpression;
  [AST_NODE_TYPES.JSXExpressionContainer]: ts.JsxExpression;
  [AST_NODE_TYPES.JSXFragment]: ts.JsxFragment;
  [AST_NODE_TYPES.JSXIdentifier]: ts.Identifier | ts.ThisExpression;
  [AST_NODE_TYPES.JSXMemberExpression]: ts.PropertyAccessExpression;
  [AST_NODE_TYPES.JSXNamespacedName]: ts.JsxNamespacedName;
  [AST_NODE_TYPES.JSXOpeningElement]:
    | ts.JsxOpeningElement
    | ts.JsxSelfClosingElement;
  [AST_NODE_TYPES.JSXOpeningFragment]: ts.JsxOpeningFragment;
  [AST_NODE_TYPES.JSXSpreadAttribute]: ts.JsxSpreadAttribute;
  [AST_NODE_TYPES.JSXSpreadChild]: ts.JsxExpression;
  [AST_NODE_TYPES.JSXText]: ts.JsxText;
  [AST_NODE_TYPES.LabeledStatement]: ts.LabeledStatement;
  [AST_NODE_TYPES.Literal]:
    | ts.BigIntLiteral
    | ts.BooleanLiteral
    | ts.NullLiteral
    | ts.NumericLiteral
    | ts.RegularExpressionLiteral
    | ts.StringLiteral;
  [AST_NODE_TYPES.LogicalExpression]: ts.BinaryExpression;
  [AST_NODE_TYPES.MemberExpression]:
    | ts.ElementAccessExpression
    | ts.PropertyAccessExpression;
  [AST_NODE_TYPES.MetaProperty]: ts.MetaProperty;
  [AST_NODE_TYPES.MethodDefinition]:
    | ts.ConstructorDeclaration
    | ts.GetAccessorDeclaration
    | ts.MethodDeclaration
    | ts.SetAccessorDeclaration;
  [AST_NODE_TYPES.NewExpression]: ts.NewExpression;
  [AST_NODE_TYPES.ObjectExpression]: ts.ObjectLiteralExpression;
  [AST_NODE_TYPES.ObjectPattern]:
    | ts.ObjectBindingPattern
    | ts.ObjectLiteralExpression;
  [AST_NODE_TYPES.Program]: ts.SourceFile;
  [AST_NODE_TYPES.Property]:
    | ts.BindingElement
    | ts.GetAccessorDeclaration
    | ts.MethodDeclaration
    | ts.PropertyAssignment
    | ts.SetAccessorDeclaration
    | ts.ShorthandPropertyAssignment;
  [AST_NODE_TYPES.RestElement]:
    | ts.BindingElement
    | ts.ParameterDeclaration
    | ts.SpreadAssignment
    | ts.SpreadElement;
  [AST_NODE_TYPES.ReturnStatement]: ts.ReturnStatement;
  [AST_NODE_TYPES.SequenceExpression]: ts.BinaryExpression;
  [AST_NODE_TYPES.SpreadElement]: ts.SpreadAssignment | ts.SpreadElement;
  [AST_NODE_TYPES.StaticBlock]: ts.ClassStaticBlockDeclaration;
  [AST_NODE_TYPES.Super]: ts.SuperExpression;
  [AST_NODE_TYPES.SwitchCase]: ts.CaseClause | ts.DefaultClause;
  [AST_NODE_TYPES.SwitchStatement]: ts.SwitchStatement;
  [AST_NODE_TYPES.TaggedTemplateExpression]: ts.TaggedTemplateExpression;
  [AST_NODE_TYPES.TemplateElement]:
    | ts.NoSubstitutionTemplateLiteral
    | ts.TemplateHead
    | ts.TemplateMiddle
    | ts.TemplateTail;
  [AST_NODE_TYPES.TemplateLiteral]:
    | ts.NoSubstitutionTemplateLiteral
    | ts.TemplateExpression;
  [AST_NODE_TYPES.ThisExpression]:
    | ts.Identifier
    | ts.KeywordTypeNode
    | ts.ThisExpression;
  [AST_NODE_TYPES.ThrowStatement]: ts.ThrowStatement;
  [AST_NODE_TYPES.TryStatement]: ts.TryStatement;
  [AST_NODE_TYPES.TSAbstractAccessorProperty]: ts.PropertyDeclaration;
  [AST_NODE_TYPES.TSAbstractMethodDefinition]:
    | ts.ConstructorDeclaration
    | ts.GetAccessorDeclaration
    | ts.MethodDeclaration
    | ts.SetAccessorDeclaration;
  [AST_NODE_TYPES.TSAbstractPropertyDefinition]: ts.PropertyDeclaration;
  [AST_NODE_TYPES.TSArrayType]: ts.ArrayTypeNode;
  [AST_NODE_TYPES.TSAsExpression]: ts.AsExpression;
  [AST_NODE_TYPES.TSCallSignatureDeclaration]: ts.CallSignatureDeclaration;
  [AST_NODE_TYPES.TSClassImplements]: ts.ExpressionWithTypeArguments;
  [AST_NODE_TYPES.TSConditionalType]: ts.ConditionalTypeNode;
  [AST_NODE_TYPES.TSConstructorType]: ts.ConstructorTypeNode;
  [AST_NODE_TYPES.TSConstructSignatureDeclaration]: ts.ConstructSignatureDeclaration;
  [AST_NODE_TYPES.TSDeclareFunction]: ts.FunctionDeclaration;
  [AST_NODE_TYPES.TSEnumBody]: ts.EnumDeclaration;
  [AST_NODE_TYPES.TSEnumDeclaration]: ts.EnumDeclaration;
  [AST_NODE_TYPES.TSEnumMember]: ts.EnumMember;
  [AST_NODE_TYPES.TSExportAssignment]: ts.ExportAssignment;
  [AST_NODE_TYPES.TSExternalModuleReference]: ts.ExternalModuleReference;
  [AST_NODE_TYPES.TSFunctionType]: ts.FunctionTypeNode;
  [AST_NODE_TYPES.TSImportEqualsDeclaration]: ts.ImportEqualsDeclaration;
  [AST_NODE_TYPES.TSImportType]: ts.ImportTypeNode;
  [AST_NODE_TYPES.TSIndexedAccessType]: ts.IndexedAccessTypeNode;
  [AST_NODE_TYPES.TSIndexSignature]: ts.IndexSignatureDeclaration;
  [AST_NODE_TYPES.TSInferType]: ts.InferTypeNode;
  [AST_NODE_TYPES.TSInstantiationExpression]: ts.ExpressionWithTypeArguments;
  [AST_NODE_TYPES.TSInterfaceBody]: ts.InterfaceDeclaration;
  [AST_NODE_TYPES.TSInterfaceDeclaration]: ts.InterfaceDeclaration;
  [AST_NODE_TYPES.TSInterfaceHeritage]: ts.ExpressionWithTypeArguments;
  [AST_NODE_TYPES.TSIntersectionType]: ts.IntersectionTypeNode;
  [AST_NODE_TYPES.TSLiteralType]: ts.LiteralTypeNode;
  [AST_NODE_TYPES.TSMappedType]: ts.MappedTypeNode;
  [AST_NODE_TYPES.TSMethodSignature]:
    | ts.GetAccessorDeclaration
    | ts.MethodSignature
    | ts.SetAccessorDeclaration;
  [AST_NODE_TYPES.TSModuleBlock]: ts.ModuleBlock;
  [AST_NODE_TYPES.TSModuleDeclaration]: ts.ModuleDeclaration;
  [AST_NODE_TYPES.TSNamedTupleMember]: ts.NamedTupleMember;
  [AST_NODE_TYPES.TSNamespaceExportDeclaration]: ts.NamespaceExportDeclaration;
  [AST_NODE_TYPES.TSNonNullExpression]: ts.NonNullExpression;
  [AST_NODE_TYPES.TSOptionalType]: ts.OptionalTypeNode;
  [AST_NODE_TYPES.TSParameterProperty]: ts.ParameterDeclaration;
  [AST_NODE_TYPES.TSPropertySignature]: ts.PropertySignature;
  [AST_NODE_TYPES.TSQualifiedName]: ts.Identifier | ts.QualifiedName;
  [AST_NODE_TYPES.TSRestType]:
    | ts.NamedTupleMember // for consistency and following babel's choices, a named tuple member with a rest gets converted to a TSRestType
    | ts.RestTypeNode;
  [AST_NODE_TYPES.TSSatisfiesExpression]: ts.SatisfiesExpression;
  [AST_NODE_TYPES.TSTemplateLiteralType]: ts.TemplateLiteralTypeNode;
  [AST_NODE_TYPES.TSThisType]: ts.ThisTypeNode;
  [AST_NODE_TYPES.TSTupleType]: ts.TupleTypeNode;
  [AST_NODE_TYPES.TSTypeAliasDeclaration]: ts.TypeAliasDeclaration;
  [AST_NODE_TYPES.TSTypeAnnotation]: undefined;
  [AST_NODE_TYPES.TSTypeAssertion]: ts.TypeAssertion;
  [AST_NODE_TYPES.TSTypeLiteral]: ts.TypeLiteralNode;
  [AST_NODE_TYPES.TSTypeOperator]: ts.TypeOperatorNode;
  [AST_NODE_TYPES.TSTypeParameter]: ts.TypeParameterDeclaration;
  [AST_NODE_TYPES.TSTypeParameterDeclaration]: undefined;
  [AST_NODE_TYPES.TSTypeParameterInstantiation]:
    | ts.CallExpression
    | ts.ExpressionWithTypeArguments
    | ts.ImportTypeNode
    | ts.JsxOpeningElement
    | ts.JsxSelfClosingElement
    | ts.NewExpression
    | ts.TaggedTemplateExpression
    | ts.TypeQueryNode
    | ts.TypeReferenceNode;
  [AST_NODE_TYPES.TSTypePredicate]: ts.TypePredicateNode;
  [AST_NODE_TYPES.TSTypeQuery]: ts.ImportTypeNode | ts.TypeQueryNode;
  [AST_NODE_TYPES.TSTypeReference]: ts.TypeReferenceNode;
  [AST_NODE_TYPES.TSUnionType]: ts.UnionTypeNode;
  [AST_NODE_TYPES.UnaryExpression]:
    | ts.DeleteExpression
    | ts.PostfixUnaryExpression
    | ts.PrefixUnaryExpression
    | ts.TypeOfExpression
    | ts.VoidExpression;
  [AST_NODE_TYPES.UpdateExpression]:
    | ts.PostfixUnaryExpression
    | ts.PrefixUnaryExpression;
  [AST_NODE_TYPES.VariableDeclaration]:
    | ts.VariableDeclarationList
    | ts.VariableStatement;
  [AST_NODE_TYPES.VariableDeclarator]: ts.VariableDeclaration;
  [AST_NODE_TYPES.WhileStatement]: ts.WhileStatement;
  [AST_NODE_TYPES.WithStatement]: ts.WithStatement;
  [AST_NODE_TYPES.YieldExpression]: ts.YieldExpression;

  // Added by parser
  // Should be same as AST_NODE_TYPES.FunctionExpression
  [AST_NODE_TYPES.TSEmptyBodyFunctionExpression]:
    | ts.ConstructorDeclaration
    | ts.FunctionExpression
    | ts.GetAccessorDeclaration
    | ts.MethodDeclaration
    | ts.SetAccessorDeclaration;

  // Keywords
  [AST_NODE_TYPES.TSAbstractKeyword]: ts.Token<ts.SyntaxKind.AbstractKeyword>;
  [AST_NODE_TYPES.TSAnyKeyword]: ts.KeywordTypeNode;

  [AST_NODE_TYPES.TSBigIntKeyword]: ts.KeywordTypeNode;
  [AST_NODE_TYPES.TSBooleanKeyword]: ts.KeywordTypeNode;
  [AST_NODE_TYPES.TSIntrinsicKeyword]: ts.KeywordTypeNode;
  [AST_NODE_TYPES.TSNeverKeyword]: ts.KeywordTypeNode;
  [AST_NODE_TYPES.TSNullKeyword]: ts.KeywordTypeNode | ts.NullLiteral;
  [AST_NODE_TYPES.TSNumberKeyword]: ts.KeywordTypeNode;
  [AST_NODE_TYPES.TSObjectKeyword]: ts.KeywordTypeNode;
  [AST_NODE_TYPES.TSStringKeyword]: ts.KeywordTypeNode;
  [AST_NODE_TYPES.TSSymbolKeyword]: ts.KeywordTypeNode;
  [AST_NODE_TYPES.TSUndefinedKeyword]: ts.KeywordTypeNode;
  [AST_NODE_TYPES.TSUnknownKeyword]: ts.KeywordTypeNode;
  [AST_NODE_TYPES.TSVoidKeyword]: ts.KeywordTypeNode;

  // Unused
  [AST_NODE_TYPES.TSAsyncKeyword]: ts.Token<ts.SyntaxKind.AsyncKeyword>;
  [AST_NODE_TYPES.TSDeclareKeyword]: ts.Token<ts.SyntaxKind.DeclareKeyword>;
  [AST_NODE_TYPES.TSExportKeyword]: ts.Token<ts.SyntaxKind.ExportKeyword>;
  [AST_NODE_TYPES.TSPrivateKeyword]: ts.Token<ts.SyntaxKind.PrivateKeyword>;
  [AST_NODE_TYPES.TSProtectedKeyword]: ts.Token<ts.SyntaxKind.ProtectedKeyword>;
  [AST_NODE_TYPES.TSPublicKeyword]: ts.Token<ts.SyntaxKind.PublicKeyword>;
  [AST_NODE_TYPES.TSReadonlyKeyword]: ts.Token<ts.SyntaxKind.ReadonlyKeyword>;
  [AST_NODE_TYPES.TSStaticKeyword]: ts.Token<ts.SyntaxKind.StaticKeyword>;
}

Properties

Name Type Optional Description
[AST_NODE_TYPES.AccessorProperty] ts.PropertyDeclaration
[AST_NODE_TYPES.ArrayExpression] ts.ArrayLiteralExpression
[AST_NODE_TYPES.ArrayPattern] ` ts.ArrayBindingPattern
ts.ArrayLiteralExpression`
[AST_NODE_TYPES.ArrowFunctionExpression] ts.ArrowFunction
[AST_NODE_TYPES.AssignmentExpression] ts.BinaryExpression
[AST_NODE_TYPES.AssignmentPattern] ` ts.BinaryExpression
ts.BindingElement
ts.ParameterDeclaration
ts.ShorthandPropertyAssignment`
[AST_NODE_TYPES.AwaitExpression] ts.AwaitExpression
[AST_NODE_TYPES.BinaryExpression] ts.BinaryExpression
[AST_NODE_TYPES.BlockStatement] ts.Block
[AST_NODE_TYPES.BreakStatement] ts.BreakStatement
[AST_NODE_TYPES.CallExpression] ts.CallExpression
[AST_NODE_TYPES.CatchClause] ts.CatchClause
[AST_NODE_TYPES.ChainExpression] ` ts.CallExpression
ts.ElementAccessExpression
ts.NonNullExpression
ts.PropertyAccessExpression`
[AST_NODE_TYPES.ClassBody] ts.ClassDeclaration | ts.ClassExpression
[AST_NODE_TYPES.ClassDeclaration] ts.ClassDeclaration
[AST_NODE_TYPES.ClassExpression] ts.ClassExpression
[AST_NODE_TYPES.ConditionalExpression] ts.ConditionalExpression
[AST_NODE_TYPES.ContinueStatement] ts.ContinueStatement
[AST_NODE_TYPES.DebuggerStatement] ts.DebuggerStatement
[AST_NODE_TYPES.Decorator] ts.Decorator
[AST_NODE_TYPES.DoWhileStatement] ts.DoStatement
[AST_NODE_TYPES.EmptyStatement] ts.EmptyStatement
[AST_NODE_TYPES.ExportAllDeclaration] ts.ExportDeclaration
[AST_NODE_TYPES.ExportDefaultDeclaration] ` ts.ClassDeclaration
ts.ClassExpression
ts.EnumDeclaration
ts.ExportAssignment
ts.FunctionDeclaration
ts.InterfaceDeclaration
ts.ModuleDeclaration
ts.TypeAliasDeclaration
ts.VariableStatement`
[AST_NODE_TYPES.ExportNamedDeclaration] ` ts.ClassDeclaration
ts.ClassExpression
ts.EnumDeclaration
ts.ExportDeclaration
ts.FunctionDeclaration
ts.ImportEqualsDeclaration
ts.InterfaceDeclaration
ts.ModuleDeclaration
ts.TypeAliasDeclaration
ts.VariableStatement`
[AST_NODE_TYPES.ExportSpecifier] ts.ExportSpecifier
[AST_NODE_TYPES.ExpressionStatement] ts.ExpressionStatement
[AST_NODE_TYPES.ForInStatement] ts.ForInStatement
[AST_NODE_TYPES.ForOfStatement] ts.ForOfStatement
[AST_NODE_TYPES.ForStatement] ts.ForStatement
[AST_NODE_TYPES.FunctionDeclaration] ts.FunctionDeclaration
[AST_NODE_TYPES.FunctionExpression] ` ts.ConstructorDeclaration
ts.FunctionExpression
ts.GetAccessorDeclaration
ts.MethodDeclaration
ts.SetAccessorDeclaration`
[AST_NODE_TYPES.Identifier] ` ts.ConstructorDeclaration
ts.Identifier
ts.Token<ts.SyntaxKind.ImportKeyword ts.SyntaxKind.NewKeyword>`
[AST_NODE_TYPES.IfStatement] ts.IfStatement
[AST_NODE_TYPES.PrivateIdentifier] ts.PrivateIdentifier
[AST_NODE_TYPES.PropertyDefinition] ts.PropertyDeclaration
[AST_NODE_TYPES.ImportAttribute] `'ImportAttribute' extends keyof typeof ts
? ts.ImportAttribute
: // eslint-disable-next-line @typescript-eslint/no-deprecated
ts.AssertEntry`
[AST_NODE_TYPES.ImportDeclaration] ts.ImportDeclaration
[AST_NODE_TYPES.ImportDefaultSpecifier] ts.ImportClause
[AST_NODE_TYPES.ImportExpression] ts.CallExpression
[AST_NODE_TYPES.ImportNamespaceSpecifier] ts.NamespaceImport
[AST_NODE_TYPES.ImportSpecifier] ts.ImportSpecifier
[AST_NODE_TYPES.JSXAttribute] ts.JsxAttribute
[AST_NODE_TYPES.JSXClosingElement] ts.JsxClosingElement
[AST_NODE_TYPES.JSXClosingFragment] ts.JsxClosingFragment
[AST_NODE_TYPES.JSXElement] ts.JsxElement | ts.JsxSelfClosingElement
[AST_NODE_TYPES.JSXEmptyExpression] ts.JsxExpression
[AST_NODE_TYPES.JSXExpressionContainer] ts.JsxExpression
[AST_NODE_TYPES.JSXFragment] ts.JsxFragment
[AST_NODE_TYPES.JSXIdentifier] ts.Identifier | ts.ThisExpression
[AST_NODE_TYPES.JSXMemberExpression] ts.PropertyAccessExpression
[AST_NODE_TYPES.JSXNamespacedName] ts.JsxNamespacedName
[AST_NODE_TYPES.JSXOpeningElement] ` ts.JsxOpeningElement
ts.JsxSelfClosingElement`
[AST_NODE_TYPES.JSXOpeningFragment] ts.JsxOpeningFragment
[AST_NODE_TYPES.JSXSpreadAttribute] ts.JsxSpreadAttribute
[AST_NODE_TYPES.JSXSpreadChild] ts.JsxExpression
[AST_NODE_TYPES.JSXText] ts.JsxText
[AST_NODE_TYPES.LabeledStatement] ts.LabeledStatement
[AST_NODE_TYPES.Literal] ` ts.BigIntLiteral
ts.BooleanLiteral
ts.NullLiteral
ts.NumericLiteral
ts.RegularExpressionLiteral
ts.StringLiteral`
[AST_NODE_TYPES.LogicalExpression] ts.BinaryExpression
[AST_NODE_TYPES.MemberExpression] ` ts.ElementAccessExpression
ts.PropertyAccessExpression`
[AST_NODE_TYPES.MetaProperty] ts.MetaProperty
[AST_NODE_TYPES.MethodDefinition] ` ts.ConstructorDeclaration
ts.GetAccessorDeclaration
ts.MethodDeclaration
ts.SetAccessorDeclaration`
[AST_NODE_TYPES.NewExpression] ts.NewExpression
[AST_NODE_TYPES.ObjectExpression] ts.ObjectLiteralExpression
[AST_NODE_TYPES.ObjectPattern] ` ts.ObjectBindingPattern
ts.ObjectLiteralExpression`
[AST_NODE_TYPES.Program] ts.SourceFile
[AST_NODE_TYPES.Property] ` ts.BindingElement
ts.GetAccessorDeclaration
ts.MethodDeclaration
ts.PropertyAssignment
ts.SetAccessorDeclaration
ts.ShorthandPropertyAssignment`
[AST_NODE_TYPES.RestElement] ` ts.BindingElement
ts.ParameterDeclaration
ts.SpreadAssignment
ts.SpreadElement`
[AST_NODE_TYPES.ReturnStatement] ts.ReturnStatement
[AST_NODE_TYPES.SequenceExpression] ts.BinaryExpression
[AST_NODE_TYPES.SpreadElement] ts.SpreadAssignment | ts.SpreadElement
[AST_NODE_TYPES.StaticBlock] ts.ClassStaticBlockDeclaration
[AST_NODE_TYPES.Super] ts.SuperExpression
[AST_NODE_TYPES.SwitchCase] ts.CaseClause | ts.DefaultClause
[AST_NODE_TYPES.SwitchStatement] ts.SwitchStatement
[AST_NODE_TYPES.TaggedTemplateExpression] ts.TaggedTemplateExpression
[AST_NODE_TYPES.TemplateElement] ` ts.NoSubstitutionTemplateLiteral
ts.TemplateHead
ts.TemplateMiddle
ts.TemplateTail`
[AST_NODE_TYPES.TemplateLiteral] ` ts.NoSubstitutionTemplateLiteral
ts.TemplateExpression`
[AST_NODE_TYPES.ThisExpression] ` ts.Identifier
ts.KeywordTypeNode
ts.ThisExpression`
[AST_NODE_TYPES.ThrowStatement] ts.ThrowStatement
[AST_NODE_TYPES.TryStatement] ts.TryStatement
[AST_NODE_TYPES.TSAbstractAccessorProperty] ts.PropertyDeclaration
[AST_NODE_TYPES.TSAbstractMethodDefinition] ` ts.ConstructorDeclaration
ts.GetAccessorDeclaration
ts.MethodDeclaration
ts.SetAccessorDeclaration`
[AST_NODE_TYPES.TSAbstractPropertyDefinition] ts.PropertyDeclaration
[AST_NODE_TYPES.TSArrayType] ts.ArrayTypeNode
[AST_NODE_TYPES.TSAsExpression] ts.AsExpression
[AST_NODE_TYPES.TSCallSignatureDeclaration] ts.CallSignatureDeclaration
[AST_NODE_TYPES.TSClassImplements] ts.ExpressionWithTypeArguments
[AST_NODE_TYPES.TSConditionalType] ts.ConditionalTypeNode
[AST_NODE_TYPES.TSConstructorType] ts.ConstructorTypeNode
[AST_NODE_TYPES.TSConstructSignatureDeclaration] ts.ConstructSignatureDeclaration
[AST_NODE_TYPES.TSDeclareFunction] ts.FunctionDeclaration
[AST_NODE_TYPES.TSEnumBody] ts.EnumDeclaration
[AST_NODE_TYPES.TSEnumDeclaration] ts.EnumDeclaration
[AST_NODE_TYPES.TSEnumMember] ts.EnumMember
[AST_NODE_TYPES.TSExportAssignment] ts.ExportAssignment
[AST_NODE_TYPES.TSExternalModuleReference] ts.ExternalModuleReference
[AST_NODE_TYPES.TSFunctionType] ts.FunctionTypeNode
[AST_NODE_TYPES.TSImportEqualsDeclaration] ts.ImportEqualsDeclaration
[AST_NODE_TYPES.TSImportType] ts.ImportTypeNode
[AST_NODE_TYPES.TSIndexedAccessType] ts.IndexedAccessTypeNode
[AST_NODE_TYPES.TSIndexSignature] ts.IndexSignatureDeclaration
[AST_NODE_TYPES.TSInferType] ts.InferTypeNode
[AST_NODE_TYPES.TSInstantiationExpression] ts.ExpressionWithTypeArguments
[AST_NODE_TYPES.TSInterfaceBody] ts.InterfaceDeclaration
[AST_NODE_TYPES.TSInterfaceDeclaration] ts.InterfaceDeclaration
[AST_NODE_TYPES.TSInterfaceHeritage] ts.ExpressionWithTypeArguments
[AST_NODE_TYPES.TSIntersectionType] ts.IntersectionTypeNode
[AST_NODE_TYPES.TSLiteralType] ts.LiteralTypeNode
[AST_NODE_TYPES.TSMappedType] ts.MappedTypeNode
[AST_NODE_TYPES.TSMethodSignature] ` ts.GetAccessorDeclaration
ts.MethodSignature
ts.SetAccessorDeclaration`
[AST_NODE_TYPES.TSModuleBlock] ts.ModuleBlock
[AST_NODE_TYPES.TSModuleDeclaration] ts.ModuleDeclaration
[AST_NODE_TYPES.TSNamedTupleMember] ts.NamedTupleMember
[AST_NODE_TYPES.TSNamespaceExportDeclaration] ts.NamespaceExportDeclaration
[AST_NODE_TYPES.TSNonNullExpression] ts.NonNullExpression
[AST_NODE_TYPES.TSOptionalType] ts.OptionalTypeNode
[AST_NODE_TYPES.TSParameterProperty] ts.ParameterDeclaration
[AST_NODE_TYPES.TSPropertySignature] ts.PropertySignature
[AST_NODE_TYPES.TSQualifiedName] ts.Identifier | ts.QualifiedName
[AST_NODE_TYPES.TSRestType] ` ts.NamedTupleMember // for consistency and following babel's choices, a named tuple member with a rest gets converted to a TSRestType
ts.RestTypeNode`
[AST_NODE_TYPES.TSSatisfiesExpression] ts.SatisfiesExpression
[AST_NODE_TYPES.TSTemplateLiteralType] ts.TemplateLiteralTypeNode
[AST_NODE_TYPES.TSThisType] ts.ThisTypeNode
[AST_NODE_TYPES.TSTupleType] ts.TupleTypeNode
[AST_NODE_TYPES.TSTypeAliasDeclaration] ts.TypeAliasDeclaration
[AST_NODE_TYPES.TSTypeAnnotation] undefined
[AST_NODE_TYPES.TSTypeAssertion] ts.TypeAssertion
[AST_NODE_TYPES.TSTypeLiteral] ts.TypeLiteralNode
[AST_NODE_TYPES.TSTypeOperator] ts.TypeOperatorNode
[AST_NODE_TYPES.TSTypeParameter] ts.TypeParameterDeclaration
[AST_NODE_TYPES.TSTypeParameterDeclaration] undefined
[AST_NODE_TYPES.TSTypeParameterInstantiation] ` ts.CallExpression
ts.ExpressionWithTypeArguments
ts.ImportTypeNode
ts.JsxOpeningElement
ts.JsxSelfClosingElement
ts.NewExpression
ts.TaggedTemplateExpression
ts.TypeQueryNode
ts.TypeReferenceNode`
[AST_NODE_TYPES.TSTypePredicate] ts.TypePredicateNode
[AST_NODE_TYPES.TSTypeQuery] ts.ImportTypeNode | ts.TypeQueryNode
[AST_NODE_TYPES.TSTypeReference] ts.TypeReferenceNode
[AST_NODE_TYPES.TSUnionType] ts.UnionTypeNode
[AST_NODE_TYPES.UnaryExpression] ` ts.DeleteExpression
ts.PostfixUnaryExpression
ts.PrefixUnaryExpression
ts.TypeOfExpression
ts.VoidExpression`
[AST_NODE_TYPES.UpdateExpression] ` ts.PostfixUnaryExpression
ts.PrefixUnaryExpression`
[AST_NODE_TYPES.VariableDeclaration] ` ts.VariableDeclarationList
ts.VariableStatement`
[AST_NODE_TYPES.VariableDeclarator] ts.VariableDeclaration
[AST_NODE_TYPES.WhileStatement] ts.WhileStatement
[AST_NODE_TYPES.WithStatement] ts.WithStatement
[AST_NODE_TYPES.YieldExpression] ts.YieldExpression
[AST_NODE_TYPES.TSEmptyBodyFunctionExpression] ` ts.ConstructorDeclaration
ts.FunctionExpression
ts.GetAccessorDeclaration
ts.MethodDeclaration
ts.SetAccessorDeclaration`
[AST_NODE_TYPES.TSAbstractKeyword] ts.Token<ts.SyntaxKind.AbstractKeyword>
[AST_NODE_TYPES.TSAnyKeyword] ts.KeywordTypeNode
[AST_NODE_TYPES.TSBigIntKeyword] ts.KeywordTypeNode
[AST_NODE_TYPES.TSBooleanKeyword] ts.KeywordTypeNode
[AST_NODE_TYPES.TSIntrinsicKeyword] ts.KeywordTypeNode
[AST_NODE_TYPES.TSNeverKeyword] ts.KeywordTypeNode
[AST_NODE_TYPES.TSNullKeyword] ts.KeywordTypeNode | ts.NullLiteral
[AST_NODE_TYPES.TSNumberKeyword] ts.KeywordTypeNode
[AST_NODE_TYPES.TSObjectKeyword] ts.KeywordTypeNode
[AST_NODE_TYPES.TSStringKeyword] ts.KeywordTypeNode
[AST_NODE_TYPES.TSSymbolKeyword] ts.KeywordTypeNode
[AST_NODE_TYPES.TSUndefinedKeyword] ts.KeywordTypeNode
[AST_NODE_TYPES.TSUnknownKeyword] ts.KeywordTypeNode
[AST_NODE_TYPES.TSVoidKeyword] ts.KeywordTypeNode
[AST_NODE_TYPES.TSAsyncKeyword] ts.Token<ts.SyntaxKind.AsyncKeyword>
[AST_NODE_TYPES.TSDeclareKeyword] ts.Token<ts.SyntaxKind.DeclareKeyword>
[AST_NODE_TYPES.TSExportKeyword] ts.Token<ts.SyntaxKind.ExportKeyword>
[AST_NODE_TYPES.TSPrivateKeyword] ts.Token<ts.SyntaxKind.PrivateKeyword>
[AST_NODE_TYPES.TSProtectedKeyword] ts.Token<ts.SyntaxKind.ProtectedKeyword>
[AST_NODE_TYPES.TSPublicKeyword] ts.Token<ts.SyntaxKind.PublicKeyword>
[AST_NODE_TYPES.TSReadonlyKeyword] ts.Token<ts.SyntaxKind.ReadonlyKeyword>
[AST_NODE_TYPES.TSStaticKeyword] ts.Token<ts.SyntaxKind.StaticKeyword>

Type Aliases

TSESTreeToTSNode<T extends TSESTree.Node = TSESTree.Node extends TSESTree.Node = TSESTree.Node>

/* * Maps TSESTree AST Node type to the expected TypeScript AST Node type(s). * This mapping is based on the internal logic of the parser. /

type TSESTreeToTSNode<T extends TSESTree.Node = TSESTree.Node extends TSESTree.Node = TSESTree.Node> = Extract<
  ts.Token<ts.SyntaxKind.ImportKeyword | ts.SyntaxKind.NewKeyword> | TSNode,
  // if this errors, it means that one of the AST_NODE_TYPES is not defined in the above interface
  EstreeToTsNodeTypes[T['type']]
>;