2012 – 2026
TypeScript Versions
Every public release of TypeScript — from TypeScript 0.8 in October 2012 through TypeScript 6.0 in March 2026 — with ship dates and the headline type-system features per version. Plus Anders Hejlsberg's design lineage, the AtScript merger with Google's Angular team, the strictNullChecks revolution, the conditional-types and template-literal-types eras, the decorators-stage-3 long road, the native-TypeScript-in-runtimes wave, and the Go-rewrite that landed as the foundation of TypeScript 7.0.
The 2010 internal start and Hejlsberg's design lineage
TypeScript began as an internal Microsoft project in 2010, under the codename "Strada". Anders Hejlsberg — whose previous language designs were Turbo Pascal at Borland (mid-1980s), Delphi at Borland (1995), and C# at Microsoft (2000) — was the chief architect. Steve Lucco, a Microsoft Distinguished Engineer who had previously led the JavaScript engine in Internet Explorer 9 and the Roslyn compiler-platform work, joined as the technical co-lead. The team had a sharp design constraint from the start: TypeScript had to be a strict superset of JavaScript — every valid JS program had to remain a valid TS program — and had to compile to readable JavaScript that ran on every browser.
TypeScript was publicly previewed on October 1, 2012 at a Microsoft event, with Hejlsberg giving the unveiling keynote on Channel 9. Initial reception was mixed: the JavaScript community in 2012 was deeply skeptical of static typing as a Java / C# import. CoffeeScript was the popular JS-with-syntax-extensions of the moment; Google's Closure Compiler had a different design philosophy (annotation comments instead of language extensions); Facebook's planned Flow took yet a third approach. TypeScript's eventual mainstream adoption took most of the 2014–2018 stretch and was not foreordained.
The 2014 1.0 release and the 1.1 compiler rewrite
TypeScript 1.0 shipped at Microsoft Build 2014 (April 2014). Open-sourced under Apache 2.0 license; developed in the open on GitHub. The marketing line — "JavaScript that scales" — framed TypeScript as a tool for projects that had grown past the point where untyped JavaScript was tractable, rather than as a replacement for JavaScript per se. Six months later, TypeScript 1.1 shipped a complete rewrite of the compiler — the original 0.x compiler had been a quick first cut and was being thrown out. The 1.1 codebase was ~4x faster and is the direct ancestor of the codebase Microsoft is now porting to Go (announced March 2025 — see below).
The AtScript merger — Angular 2 and the decorators origin (2014–2015)
In late 2014, Google's Angular team — Miško Hevery, Brad Green, Igor Minar, and others — were designing Angular 2 from scratch and had built their own typed JavaScript dialect called AtScript as a layer on top of TypeScript. AtScript added two things TypeScript didn't have: annotations on declarations (@Component(...) on classes; the syntax that became "decorators") and runtime type information.
At ng-conf 2015 (March 2015), Hevery announced that Angular 2 would adopt TypeScript as its primary authoring language, and that AtScript's syntactic extensions were being merged upstream into TypeScript itself. The decorator syntax shipped in TypeScript 1.5 as --experimentalDecorators; Angular 2 became the first major framework built on TypeScript. The AtScript-derived experimental decorators would remain "experimental but ubiquitous" for the next eight years until TypeScript 5.0 shipped the spec-compliant Stage-3 version in March 2023. The AtScript merger is widely cited as the inflection point for TypeScript's mainstream adoption — a major Google project shipping on TypeScript reset what the JavaScript community thought of as the default.
The strictNullChecks revolution — September 2016
TypeScript 2.0 (September 2016) introduced --strictNullChecks, making null and undefined their own types and removing them from the assignment-everywhere position they'd held since 1.0. Combined with the new control-flow type analysis (the compiler tracks variable types through if/else/switch) and the new tagged-union narrowing pattern, 2.0 reshaped what TypeScript could express. The "billion-dollar mistake" of Tony Hoare's 1965 null-pointer design was finally first-class addressable in a JavaScript type system. Most TypeScript style guides written from late 2016 forward begin with "turn on --strict"; the C#-side ? nullable-reference-types feature would land four years later in C# 8 (September 2019), explicitly modeled on the TypeScript design.
The conditional-types era — March 2018
TypeScript 2.8 (March 2018) shipped conditional types — X extends Y ? A : B — together with the infer keyword for pattern-extracting types out of generics. Conditional types alone were a pleasant addition; conditional types plus distributive behavior over unions plus mapped types (from 2.1) plus recursive conditional types (added in 4.1) turned the type system into a Turing-complete computational language. Modern libraries like Zod, tRPC, Effect, Drizzle, and Astral's TypeBox are direct descendants of this expressive shift — they use type-level computation to derive precise typings from values, schemas, or strings.
The template-literal-types era — November 2020
TypeScript 4.1 (November 2020) shipped template literal types, turning string manipulation into a first-class type-system operation: type Greeting = `Hello, ${Name}`. Combined with the conditional-types-plus-infer dialect from 2.8, the type system could now compute precise types from string keys: route("/users/:id") could derive that the handler's params.id is a string. The library ecosystem (Hono, tRPC v10+, Effect, Astral's pgTyped, Drizzle ORM) absorbed this expressive level into the modern TypeScript dialect over 2021–2024.
The decorators long road (2015–2023)
Decorators have the most tortured shipping history of any TypeScript feature. They first appeared in TypeScript 1.5 (July 2015) as --experimentalDecorators — the AtScript-derived syntax that Angular 2 was built on. The TC39 standardization track for decorators went through three substantially different proposal iterations between 2014 and 2022: the original "Stage 1" proposal (which TypeScript implemented), a "Stage 2" reset in 2018 that backed away from much of it, and the eventual Stage 3 proposal that finally reached spec-stable in 2022.
TypeScript 5.0 (March 2023) shipped the Stage 3 implementation as the recommended path. The original experimental decorators remain available under --experimentalDecorators for backward compatibility — nearly every Angular and NestJS codebase still uses them — but the new code path is the future. TypeScript 5.2 (August 2023) shipped decorator metadata, completing the runtime-reflection story.
Native TypeScript in JavaScript runtimes (2018–)
Deno (Ryan Dahl's post-Node project, launched 2018) was the first major JavaScript runtime to support TypeScript natively — deno run script.ts just works, with the compiler embedded in the runtime. Bun (Jarred Sumner's runtime, 2022 onward) shipped TypeScript support from day one with the compiler integrated into the JIT path. Both runtimes treated TypeScript as a peer of JavaScript rather than as a separate compile-then-run step.
Node.js followed eventually. Node 22 (April 2024) shipped experimental --experimental-strip-types, treating .ts files as JavaScript with the type annotations stripped at parse time but with no actual type checking. Node 23 (October 2024) made type-stripping the default for .ts files. The "type stripping" approach — just remove the type annotations and run — had been popularized by esbuild (Evan Wallace's Go-based JS toolchain, 2020) and swc (Donny Wong's Rust-based equivalent, 2017+); both projects could compile TypeScript ~100x faster than tsc by skipping type checking.
The TC39 type-annotations proposal (active since 2022) is the formal standardization track for "JavaScript engines accept type annotations as comments." Stage 1 as of the table's last update; if it advances, it would let TypeScript-syntax files run in browsers without any compile step.
The Go rewrite — from March 2025 announcement to the 7.0 native compiler
On March 11, 2025, the TypeScript team announced that they were porting tsc (the TypeScript compiler) from TypeScript-itself to Go, with a target of roughly 10x faster compilation and TS Server startup. Anders Hejlsberg, in the announcement post, framed the choice of Go as primarily about the language's mature concurrency story (the compiler is heavily parallelizable) and the AOT-compiled startup-time advantage over JavaScript. The new compiler was developed in the open at github.com/microsoft/typescript-go and is the largest architectural change to the TypeScript codebase since the 1.1 compiler rewrite in October 2014.
One year later, on March 23, 2026, TypeScript 6.0 shipped as the final compiler built on the JavaScript codebase. The 6.0 release deliberately resets the defaults that had aged (--strict on, module: esnext, target: ES2025) and adds --stableTypeOrdering as a deliberate-comparison flag for tooling that needs to diff JS-compiler vs. Go-compiler output. The Go-based compiler ships as the foundation of TypeScript 7.0, currently in nightly preview as the @typescript/native-preview npm package and as a VS Code extension. As of the table's last update, 7.0 is targeted for stable release within months and is reportedly already in production at large codebases inside and outside Microsoft. The TypeScript-in-TypeScript codebase stays around as the reference implementation for language semantics, but new feature work and the recommended toolchain are moving to the Go-based compiler.
The alternative-toolchain lineage
TypeScript's official compiler (tsc) is the source of truth for type checking, but for compilation-only workloads (transform .ts to .js without type checking), several faster alternative toolchains have eaten significant adoption:
- esbuild — Evan Wallace's Go-based bundler (2020). The first widely-adopted "TypeScript without tsc" path; ~100x faster than
tsc on transform-only workloads. Used by Vite, tsup, and a long tail of bundler tooling.
- swc — Donny Wong's Rust-based equivalent (2017 onward, hit mainstream traction with Vercel's adoption in 2021). Used by Next.js, Parcel, and as the rebuild engine for Jest.
- Bun — Jarred Sumner's Zig-based runtime + bundler + package manager (2022). TS compilation built into the runtime path.
- Astral's tsgo / Microsoft's typescript-go — the official Go port (March 2025). The first first-party "fast tsc" coming directly from the TypeScript team.
- Oxc — Boshen Chen's Rust-based JS / TS toolchain (2023+); positioning itself as the next-generation linter / formatter / type-stripper.
People who actually shaped TypeScript
Microsoft TypeScript team: Anders Hejlsberg (Technical Fellow, chief architect; previously Turbo Pascal at Borland in the 1980s, Delphi at Borland in 1995, C# at Microsoft from 2000), Steve Lucco (Distinguished Engineer, technical co-lead; previously the IE9 JavaScript engine and Roslyn compiler platform), Daniel Rosenwasser (Senior Program Manager and the public-facing voice of TS releases since the 2.x line), Ryan Cavanaugh (engineering manager since the early years), Mohamed Hegazy (long-time language-services engineer), Andrew Branch (module-resolution and Node-ESM work), Wesley Wigham (decorators and the Stage-3 implementation), Nathan Shively-Sanders (control flow analysis), Sheetal Nandi (compiler internals), Bill Ticehurst, Jakub Wojciechowski, and the long tail of the TS team contributors.
AtScript / Angular lineage: Miško Hevery (Angular co-creator, AtScript design, ng-conf 2015 keynote announcing the merger), Brad Green (Angular team lead at Google), Igor Minar (Angular long-time PM), Jonathan Turner (early TypeScript PM who handled the AtScript-merger negotiations on the Microsoft side; later joined the Rust team).
Type-driven library lineage: Colin McDonnell (Zod author), Alex Johansson and Julius Marminge (tRPC), Michael Arnaldi (Effect-TS), Andrew Sherman (Drizzle ORM), Sergey Berezhnoy (TypeBox). These authors collectively shaped how the conditional-types-plus-template-literal-types dialect is used in production. Alternative-toolchain lineage: Evan Wallace (esbuild), Donny Wong (swc), Jarred Sumner (Bun), Boshen Chen (Oxc), Charlie Marsh (Astral — ruff / uv / and the TypeScript Native Preview / tsgo collaboration with Microsoft).