# What changed in ast-types

> 23 changes in ast-types 0.16 from its official release notes, upgrade guides and advisories: 9 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/ast-types/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## ast-types 0.16

### New APIs and options

- Registers decorators so visitors traverse and deep checks accept class declarations with decorators. (0.16.3) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.3)
- Registers options so visitors traverse and deep checks accept import attributes in import() types. (0.16.3) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.3)
- Allows kind to be "using" and "await using" for explicit resource management declarations. (0.16.3) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.3)
- CallExpression now carries TypeScript type arguments, and the visitor traverses them. (0.16.2) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.2)
- ExportAllDeclaration gains an exportKind field with value or type variants, supporting TypeScript type-only star exports. (0.16.2) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.2)
- ExportNamedDeclaration gains an exportKind field with value or type variants, supporting TypeScript type-only star exports. (0.16.2) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.2)
- specifiers now accepts ExportNamespaceSpecifier, ExportDefaultSpecifier and ExportBatchSpecifier; code reading local on every specifier needs an ExportSpecifier check. (0.16.2) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.2)
- NewExpression now carries TypeScript type arguments, and the visitor traverses them. (0.16.2) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.2)
- OptionalCallExpression now carries TypeScript type arguments, and the visitor traverses them. (0.16.2) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.2)

### Behavior and default changes

- declaration now defaults to null, allowing Babel ASTs that omit the property for specifier-only exports to validate. (0.16.2) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.2)

### Fixes and other changes

- Registers the optional field on array patterns so visitors traverse and deep checks accept these nodes. (0.16.3) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.3)
- Registers typeAnnotation on array patterns so visitors traverse and deep checks accept the shared Flow and TypeScript definition. (0.16.3) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.3)
- Registers the optional field on assignment patterns so visitors traverse and deep checks accept these nodes. (0.16.3) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.3)
- Registers typeAnnotation on assignment patterns so visitors traverse and deep checks accept the shared Flow and TypeScript definition. (0.16.3) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.3)
- Registers decorators so visitors traverse and deep checks accept class expressions with decorators. (0.16.3) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.3)
- Registers typeParameters so visitors traverse and deep checks accept explicit JSX type arguments. (0.16.3) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.3)
- Registers the optional field on object patterns so visitors traverse and deep checks accept these nodes. (0.16.3) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.3)
- Registers typeParameters so visitors traverse and deep checks accept TypeScript instantiation expressions such as f<T>. (0.16.3) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.3)
- Registers typeParameters so visitors traverse and deep checks accept TypeScript instantiation expressions such as typeof f<T>. (0.16.3) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.3)
- exported may be a string Literal; code reading exported.name needs to check for Identifier first. (0.16.2) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.2)
- The package is now published on the latest dist-tag, so npm install ast-types resolves to this release instead of the older build. (0.16.2) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.2)
- NodePath imported from the package is now usable as a generic type, and declaration imports no longer conflict with declared values under isolatedModules. (0.16.2) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.2)
- Type imported from the package is now usable as a generic type, and declaration imports no longer conflict with declared values under isolatedModules. (0.16.2) — [release notes](https://github.com/benjamn/ast-types/releases/tag/v0.16.2)
