# @types/esrecurse

> TypeScript definitions for esrecurse

Latest version **4.3.1** (published 2025-07-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install @types/esrecurse
pnpm add @types/esrecurse
yarn add @types/esrecurse
bun add @types/esrecurse
```

## Health

**Score 55/100 (C)** — status: stable.

Positive: has types; no vulnerabilities; high maintenance score; popular repo; extremely popular.

Warnings: low downloads; no esm support.

Negative: stale.

## Facts

| | |
|---|---|
| Version | 4.3.1 |
| Published | 2025-07-19 |
| First published | 2025-05-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 5.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 51431 |
| Maintainers | types |

## Links

- npm: https://www.npmjs.com/package/@types/esrecurse
- Repository: https://github.com/DefinitelyTyped/DefinitelyTyped
- Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/esrecurse
- npm.io page: https://npm.io/package/@types/esrecurse

## Recent versions

- 4.3.1 (latest) — 2025-07-19
- 4.3.0 — 2025-05-07

## README

# Installation
> `npm install --save @types/esrecurse`

# Summary
This package contains type definitions for esrecurse (https://github.com/estools/esrecurse).

# Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/esrecurse.
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/esrecurse/index.d.ts)
````ts
/**
 * Options for the Visitor constructor and visit function.
 */
interface VisitorOptions {
    /**
     * Fallback strategy for unknown node types.
     * @default 'iteration'
     */
    fallback?: "iteration" | ((node: any) => string[]);

    /**
     * Custom keys for child nodes by node type.
     * @default {}
     */
    childVisitorKeys?: Record<string, string[]>;
}

/**
 * A visitor class for recursively traversing ECMAScript AST.
 */
declare class Visitor {
    /**
     * Creates a new Visitor instance.
     * @param options Configuration options for the visitor.
     */
    constructor(visitor?: Visitor | null, options?: VisitorOptions | null);

    /**
     * Visits a node, invoking the appropriate handler.
     * @param node The AST node to visit.
     */
    visit(node: any): void;

    /**
     * Visits the children of a node based on childVisitorKeys.
     * @param node The AST node whose children to visit.
     */
    visitChildren(node: any): void;
}

/**
 * Visits an AST node with the specified visitor.
 * @param ast The AST node to traverse.
 * @param visitor A visitor instance or visitor object.
 * @param options Configuration options for the traversal.
 */
declare function visit(
    ast: any,
    visitor?: Visitor | Record<string, (node: any) => void> | null,
    options?: VisitorOptions,
): void;

export { visit, Visitor, type VisitorOptions };

````

### Additional Details
 * Last updated: Sat, 19 Jul 2025 03:47:05 GMT
 * Dependencies: none

# Credits
These definitions were written by [Jimmy Leung](https://github.com/hkleungai).

---
_Source: https://npm.io/package/@types/esrecurse · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
