Reference

TypeScript releases for JavaScript users

TypeScript ships a release every few months, and its release notes are written for people who write .ts files. These pages read them for people who check JavaScript: what each release changed for JSDoc, for checkJs and jsconfig.json, for imports in .js files, and for the errors tsc reports.

Each page gives the release date, the changes with an example run through TypeScript 5.9 (the version this site checks with), what did not change, and what to do when upgrading. The 6.0 and 7.0 pages report the release notes instead, because this site's examples do not run on those versions yet.

TypeScript 6 and the native port

6.0, the last release written in TypeScript, changes defaults and deprecates old options; 7.0 is the native port, which reads JSDoc more strictly. This site's examples still run on 5.9, so these pages report the release notes.

  • TypeScript 7.0 for JavaScript users

    TypeScript 7.0, the native port, for JavaScript: builds 8 to 12 times faster, and JSDoc is read like TypeScript, without @enum, @class or Closure types.

    • Released 8 July 2026
    • From the release notes
  • TypeScript 6.0 for JavaScript users

    TypeScript 6.0 for JavaScript: strict on and types empty by default, baseUrl and moduleResolution node deprecated, and the step before 7.0.

    • Released 23 March 2026
    • From the release notes

TypeScript 5

From @satisfies and @overload in 5.0 to @import in 5.5 and the shorter tsc --init in 5.9. Every example on these pages runs with TypeScript 5.9.

  • TypeScript 5.9 for JavaScript users

    TypeScript 5.9 for checked JavaScript: a shorter tsc --init, import defer, module node20, and a Uint8Array is no longer an ArrayBuffer.

    • Released 1 August 2025
  • TypeScript 5.8 for JavaScript users

    TypeScript 5.8 for checked JavaScript: each branch of a returned conditional is checked, require() of ES modules under nodenext, and no more assert.

    • Released 28 February 2025
  • TypeScript 5.7 for JavaScript users

    TypeScript 5.7 for checked JavaScript: variables nothing ever assigns, JSON imports need with { type: "json" } under nodenext, and es2024.

    • Released 22 November 2024
  • TypeScript 5.6 for JavaScript users

    TypeScript 5.6 for checked JavaScript: conditions that are always truthy are errors, iterator results under strict, and noUncheckedSideEffectImports.

    • Released 9 September 2024
  • TypeScript 5.5 for JavaScript users

    TypeScript 5.5 for checked JavaScript: the JSDoc @import tag, inferred type predicates, regular expression checks, and ${configDir}.

    • Released 20 June 2024
  • TypeScript 5.4 for JavaScript users

    TypeScript 5.4 for checked JavaScript: narrowing that survives into callbacks, the NoInfer type, Object.groupBy types, and module preserve.

    • Released 6 March 2024
  • TypeScript 5.3 for JavaScript users

    TypeScript 5.3 for checked JavaScript: import attributes, switch (true) narrowing, instanceof with Symbol.hasInstance, and super checks on fields.

    • Released 20 November 2023
  • TypeScript 5.2 for JavaScript users

    TypeScript 5.2 for checked JavaScript: using declarations, array methods on unions of arrays, .ts paths in import types, and matching module settings.

    • Released 24 August 2023
  • TypeScript 5.1 for JavaScript users

    TypeScript 5.1 for checked JavaScript: @returns {undefined} needs no return, unrelated getter and setter types, and @param snippets.

    • Released 1 June 2023
  • TypeScript 5.0 for JavaScript users

    TypeScript 5.0 for checked JavaScript: the @satisfies and @overload tags, @template const, extends with several configs, and moduleResolution bundler.

    • Released 16 March 2023

TypeScript 4

From @deprecated and checkJs implying allowJs to Node.js ES module support in 4.7. The examples show each change as TypeScript 5.9 reports it.

  • TypeScript 4.9 for JavaScript users

    TypeScript 4.9 for checked JavaScript: the in operator narrows unknown data, equality checks against not-a-number are errors, and emit keeps every import.

    • Released 15 November 2022
  • TypeScript 4.8 for JavaScript users

    TypeScript 4.8 for checked JavaScript: a @typedef can no longer be imported by name, comparing with [] is an error, and unknown narrows better.

    • Released 25 August 2022
  • TypeScript 4.7 for JavaScript users

    TypeScript 4.7 for checked JavaScript: Node.js ES module support with module nodenext, .mjs and .cjs files, package exports, and moduleDetection.

    • Released 24 May 2022
  • TypeScript 4.6 for JavaScript users

    TypeScript 4.6 for JavaScript: syntax and binding errors in every .js file, even unchecked ones, plus narrowing for destructured unions.

    • Released 28 February 2022
  • TypeScript 4.5 for JavaScript users

    TypeScript 4.5 for checked JavaScript: @type {const} and default @template arguments in JSDoc, the Awaited type, and #field in obj checks.

    • Released 17 November 2021
  • TypeScript 4.4 for JavaScript users

    TypeScript 4.4 for JavaScript: caught errors are unknown under strict, spelling suggestions in unchecked .js files, and checks stored in a const narrow.

    • Released 26 August 2021
  • TypeScript 4.3 for JavaScript users

    TypeScript 4.3 for checked JavaScript: setters that accept more types than their getters return, noImplicitOverride, {@link} in editors, and promise checks.

    • Released 26 May 2021
  • TypeScript 4.2 for JavaScript users

    TypeScript 4.2 for JavaScript: type arguments in a .js file parse as comparisons, untyped yield results are implicit any, and --explainFiles.

    • Released 23 February 2021
  • TypeScript 4.1 for JavaScript users

    TypeScript 4.1 for JavaScript: checkJs implies allowJs, @see in editors, noUncheckedIndexedAccess, and resolve() needs a value.

    • Released 19 November 2020
  • TypeScript 4.0 for JavaScript users

    TypeScript 4.0 for checked JavaScript: @deprecated in editors, ??= and ||=, variadic tuples in JSDoc, and delete needs an optional property.

    • Released 20 August 2020

The entries on this page are also published as data: versions.json (about the data files).