TypeScript Tutorial · TypeScript Basics · Lesson 13 of 25
TypeScript History & Versions
Why Microsoft created TypeScript, how it grew into the default way to write large JavaScript apps, every major release on one timeline (including the native Go compiler in 7.0), and which version to use today.
How TypeScript started
By 2010, teams at Microsoft were building very large applications in JavaScript, such as the web version of Office, and found that a dynamically typed language made big codebases hard to refactor and navigate. A team led by Anders Hejlsberg, who had earlier designed Turbo Pascal, Delphi and C#, set out to add optional static types to JavaScript without changing how JavaScript runs.
TypeScript was announced on 1 October 2012 (version 0.8). Its key design choice: TypeScript is a superset of JavaScript. Every JavaScript program is valid TypeScript, and the compiler simply erases the types and outputs plain JavaScript. Types exist to catch mistakes early and to power editor features such as autocompletion and safe renames.
The project moved to GitHub in 2014, and adoption took off when Google's Angular 2 chose TypeScript in 2015. Today most large JavaScript projects and frameworks are written in TypeScript or ship TypeScript types.
Timeline of major versions
- TypeScript 7.1Upcoming
- Beta announced October 2026; expected to bring the new compiler API for tools such as linters
- TypeScript 7.0Current
- A native compiler written in Go with multithreading: full builds typically 8–12× faster than 6.0
- Keeps 6.0's defaults (
stricton) and turns the deprecated options into errors; no compiler API yet
- TypeScript 6.0Supported
- The last release of the original JavaScript-based compiler, a bridge to 7.0
- New defaults:
strict: true,module: esnext, latesttarget; legacy options such astarget: es5andbaseUrldeprecated
- TypeScript 5.0Historic
- Standard ECMAScript decorators,
consttype parameters,moduleResolution: bundler
- Standard ECMAScript decorators,
- TypeScript 4.9Historic
- The
satisfiesoperator: check a value against a type without widening it
- The
- TypeScript 4.1Historic
- Template literal types such as
`on${Capitalize<E>}`and key remapping in mapped types
- Template literal types such as
- TypeScript 4.0Historic
- Variadic tuple types and labeled tuple elements
- TypeScript 3.0Historic
- The
unknowntype, project references for large repositories, richer tuples in rest parameters
- The
- TypeScript 2.0Historic
strictNullChecks(non-nullable types), control-flow based type narrowing, thenevertype
- TypeScript 1.0Historic
- First stable release, announced at Microsoft Build
- TypeScript 0.8Historic
- First public release
TypeScript does not follow semantic versioning: a new minor version (5.1, 5.2, …) ships about every three months, and any release can include small breaking changes. The jump from 6 to 7 marks the switch to the new compiler.
How TypeScript modernized
- Stricter by default. Early TypeScript was lenient.
strictNullChecks(2.0) and thestrictfamily of options became best practice, and 6.0 finally madestrictthe default. - A type system that models real JavaScript. Union types, narrowing, mapped and conditional types (2.x),
template literal types (4.1) and
satisfies(4.9) let TypeScript describe even very dynamic code precisely. - Following the standard. TypeScript adopts ECMAScript features as they reach stage 3, and 5.0 switched to the standard decorators.
- A 10× faster compiler. Announced in March 2025, the native Go port (Project "Corsa") shipped as TypeScript 7.0 in July 2026, cutting build and editor wait times on big projects from minutes to seconds.
- Running TypeScript directly. Modern runtimes such as Deno, Bun and recent Node.js versions can run
.tsfiles by stripping the types, without a separate build step.
TypeScript 5 vs 6 vs 7
| Topic | 5.x | 6.0 | 7.0 |
|---|---|---|---|
| Compiler written in | TypeScript (JavaScript) | TypeScript (JavaScript) | Go (native, multithreaded) |
| Full build speed | Baseline | About the same as 5.x | Typically 8–12× faster |
strict default |
Off | On | On |
target: es5, baseUrl, AMD/UMD output |
Supported | Deprecated (warnings) | Removed (errors) |
| Compiler API for tools | Yes | Yes | Not yet (planned for 7.1) |
Which version should you use?
- New projects: TypeScript 7 for the speed. If a tool you depend on (some linters and bundler plugins) needs
the compiler API, also install the
@typescript/typescript6package for that tool until 7.1. - Existing projects: upgrade to 6.0 first and fix its deprecation warnings; then 7.0 compiles the same code without surprises.
- This tutorial: examples run in your browser after the types are stripped, and every example is type-checked
with
tscinstrictmode when we build the lesson.
Official resources
- typescriptlang.org and the TypeScript Handbook
- Release notes for every version
- TypeScript team blog: release announcements
- TypeScript on GitHub and the native compiler repository
- TypeScript roadmap
Last reviewed 21 October 2026. Release and support dates come from the official release pages linked above.