What is @typescript-eslint/experimental-utils?
The @typescript-eslint/experimental-utils package provides various utilities for working with TypeScript and ESLint. It is part of the TypeScript ESLint project, which aims to enable ESLint to support TypeScript. The utilities in this package are considered experimental and are primarily intended for use by developers creating custom ESLint rules for TypeScript codebases.
What are @typescript-eslint/experimental-utils's main functionalities?
AST Utilities
Provides utility functions to work with Abstract Syntax Trees (AST), such as checking if a node is an identifier.
const { ASTUtils } = require('@typescript-eslint/experimental-utils');
const { isIdentifier } = ASTUtils;
ESLint Rule Creation
Facilitates the creation of custom ESLint rules with TypeScript support, including a rule creator function that helps define metadata for rules.
const { ESLintUtils } = require('@typescript-eslint/experimental-utils');
const createRule = ESLintUtils.RuleCreator(name => `https://example.com/rule/${name}`);
Type Information
Provides utilities to retrieve type information from TypeScript code, which can be used in custom ESLint rules to perform type-aware linting.
const { TypeScriptUtils } = require('@typescript-eslint/experimental-utils');
const { getParserServices } = TypeScriptUtils;
const parserServices = getParserServices(context);
const checker = parserServices.program.getTypeChecker();
Other packages similar to @typescript-eslint/experimental-utils
eslint-plugin-import
This package provides a set of ESLint rules that help validate proper imports. It is similar to @typescript-eslint/experimental-utils in that it extends ESLint's capabilities, but it focuses specifically on import/export syntax rather than providing a general set of TypeScript utilities.
eslint-utils
Similar to @typescript-eslint/experimental-utils, eslint-utils provides utility functions for working with ESLint and ASTs. However, it is not specifically tailored to TypeScript and does not provide type information utilities.
tsutils
Tsutils is a utility library that provides functions for working with TypeScript's AST and type checker. While it offers some similar functionality to @typescript-eslint/experimental-utils, it is not designed specifically for creating ESLint rules and does not integrate with ESLint out of the box.
Utils for ESLint Plugins
Utilities for working with TypeScript + ESLint together.
Note
This package is purely a re-export of @typescript-eslint/utils
.
You should switch to importing from that non-experimental package instead.
- import { RuleCreator } from '@typescript-eslint/experimental-utils';
+ import { RuleCreator } from '@typescript-eslint/utils';
⚠ A future major version of this old package will console.warn
to ask you to switch.
Contributing
See the contributing guide here