# TypeScript ESLint Documentation
# Source: https://raw.githubusercontent.com/typescript-eslint/typescript-eslint/main/docs/packages/Utils.mdx
# Path: docs/packages/Utils.mdx

---
id: utils
sidebar_label: utils
toc_max_heading_level: 3
---

# `@typescript-eslint/utils`

<PackageLink packageName="utils" scope="@typescript-eslint" />

> Utilities for working with TypeScript + ESLint together. ✨

This package contains public utilities for writing custom rules and plugins in TypeScript.
Rules declared in [`@typescript-eslint/eslint-plugin`](./ESLint_Plugin.mdx) are created using these utility functions.
Any custom rules you write generally will be as well.

> See [Custom Rules](../developers/Custom_Rules.mdx) for documentation on creating your own custom ESLint rules for TypeScript code.

## Exports

| Name              | Description                                                                                                                                                                                                                   |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AST_NODE_TYPES`  | An enum with the names of every single _node_ found in `TSESTree`.                                                                                                                                                            |
| `AST_TOKEN_TYPES` | An enum with the names of every single _token_ found in `TSESTree`.                                                                                                                                                           |
| `ASTUtils`        | Tools for operating on the ESTree AST. Also includes the [`@eslint-community/eslint-utils`](https://www.npmjs.com/package/@eslint-community/eslint-utils) package, correctly typed to work with the types found in `TSESTree` |
| `ESLintUtils`     | Tools for creating ESLint rules with TypeScript.                                                                                                                                                                              |
| `JSONSchema`      | Strict types for the JSON Schema v4 spec - the version that ESLint uses to validate all rules with.                                                                                                                           |
| `ParserServices`  | Typing for the parser services provided when parsing a file using `@typescript-eslint/typescript-estree`.                                                                                                                     |
| `TSESLint`        | Types for ESLint, correctly typed to work with the types found in `TSESTree`.                                                                                                                                                 |
| `TSESLintScope`   | The [`eslint-scope`](https://www.npmjs.com/package/eslint-scope) package, correctly typed to work with the types found in both `TSESTree` and `TSESLint`                                                                      |
| `TSESTree`        | Types for the TypeScript flavor of ESTree created by `@typescript-eslint/typescript-estree`.                                                                                                                                  |