unstale

npm / @babel/plugin-syntax-typescript

@babel/plugin-syntax-typescript

What changed in @babel/plugin-syntax-typescript 8, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-26.

20 breaking3 new APIs and options2 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.7 on npm

@babel/plugin-syntax-typescript 825 changes

Breaking changes 20

  • All presets and plugins require @babel/core@^8.0.0 as a peer dependency; Babel 7 combinations are not officially supported.

    8.0.0upgrade guide

  • BigIntLiteral.value is a bigint instead of a string, aligning it with NumericLiteral; JSON.stringify cannot serialize bigint.

    8.0.0upgrade guide

  • TSParenthesizedType is no longer generated unless createParenthesizedExpression is enabled; node.extra.parenthesized can indicate parentheses when it is false.

    8.0.0upgrade guide

  • Babel is shipped as native ECMAScript modules, affecting how projects load Babel packages.

    8.0.0upgrade guide

  • Dynamic import() is represented by an ImportExpression node instead of a CallExpression; createImportExpressions: false retains the legacy AST.

    8.0.0upgrade guide

  • Importing internal files is disallowed; use the exported API only.

    8.0.0upgrade guide

  • The isTSX option has been removed. Remove it from configuration and enable @babel/plugin-syntax-jsx when JSX syntax is needed.

    8.0.0upgrade guide

  • Babel 8 packages require Node.js ^22.18.0 || >=24.11.0, so the plugin will not run on older Node versions.

    8.0.0upgrade guide

  • The parameters field is renamed to params on TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSFunctionType, TSConstructorType, and TSMethodSignature.

    8.0.0upgrade guide

  • The typeAnnotation field is renamed to returnType on TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSFunctionType, TSConstructorType, and TSMethodSignature.

    8.0.0upgrade guide

  • ClassDeclaration and ClassExpression use superTypeArguments instead of superTypeParameters.

    8.0.0upgrade guide

  • Class implements entries use TSClassImplements instead of TSExpressionWithTypeArguments; type arguments use typeArguments.

    8.0.0upgrade guide

  • TSEnumDeclaration members are wrapped in a TSEnumBody node.

    8.0.0upgrade guide

  • An exported TSImportEqualsDeclaration is parsed inside an ExportNamedDeclaration, and its isExport field is removed.

    8.0.0upgrade guide

  • TSImportType.argument is renamed to source.

    8.0.0upgrade guide

  • Interface extends entries use TSInterfaceHeritage instead of TSExpressionWithTypeArguments; type arguments use typeArguments.

    8.0.0upgrade guide

  • TSMappedType flattens typeParameter into key and constraint properties on the node.

    8.0.0upgrade guide

  • A dotted namespace name such as namespace X.Y is represented by one TSModuleDeclaration whose name is a TSQualifiedName, rather than nested declarations.

    8.0.0upgrade guide

  • TSTypeParameter.name is an Identifier node instead of a plain string, aligning the AST with @typescript-eslint.

    8.0.0upgrade guide

  • typeParameters is renamed to typeArguments on CallExpression, JSXOpeningElement, NewExpression, OptionalCallExpression, TSImportType, TSInstantiationExpression, TSTypeQuery, and TSTypeReference.

    8.0.0upgrade guide

New APIs and options 3

  • When both estree and typescript parser plugins are enabled, Babel creates TSAbstractMethodDefinition nodes.

    8.0.0upgrade guide

  • When both estree and typescript parser plugins are enabled, Babel creates TSPropertyDefinition nodes.

    8.0.0upgrade guide

  • Interpolated template literal types produce TSTemplateLiteralType nodes; types without interpolated positions retain their existing AST shape.

    8.0.0upgrade guide

Fixes and other changes 2

  • Removes isTSX from the plugin's types, correcting the TypeScript declarations.

    8.0.3release notes

  • TSTypeQuery.exprName can be a ThisExpression for typeof this, rather than an Identifier named this.

    8.0.0upgrade guide