THE 2010S

TypeScript

When Microsoft launched TypeScript in 2010, the web development landscape was undergoing rapid transformation. JavaScript, once relegated to simple browser interactions, had become an essential language. Execution engines were gaining performance, single-page web applications were proliferating, and Node.js was paving the way for server-side JavaScript. This expansion brought with it a problem: maintaining large JavaScript codebases was a real headache.

Anders Hejlsberg, the architect behind C#, led the project with a clear ambition. The goal was not to replace JavaScript, but to enhance it. TypeScript presents itself as a syntactic superset of JavaScript: any valid JavaScript code remains valid TypeScript code. The core idea was to add an optional static type system. Developers can annotate their code, and these annotations disappear at compilation. The generated JavaScript retains no trace of the typing.

This technical decision reflects a keen understanding of real needs. The type system adopts a structural approach rather than a nominal one, which better suits JavaScript developers’ habits. In this ecosystem, objects often emerge directly, without going through formal classes. TypeScript embraces this practice instead of fighting it.

One design choice deserves attention. TypeScript’s creators deliberately chose not to guarantee complete type safety. They preferred to facilitate gradual adoption and maintain compatibility with existing libraries. This flexibility allows teams to introduce TypeScript into their projects without rewriting everything at once.

Steve Ballmer, Microsoft’s former CEO, had compared open source licenses to “a cancer that attaches itself to everything it touches.” He denounced the lack of accountability in free software. Yet the TypeScript team knew they would never win over the JavaScript community without embracing open source. In 2012, Microsoft released TypeScript under the Apache-2.0 license, first on CodePlex, then on GitHub in 2014.

Adoption grew gradually. In 2025, the GitHub repository has garnered over 107,000 stars and ranks among the platform’s twenty most popular projects. The NPM package records over 100 million weekly downloads. More than 61,000 other packages depend on it. These figures reflect established trust.

The language introduces structural concepts: interfaces, classes, modules. Its type inference system reduces required annotations while preserving the benefits of static typing. Development tools are enriched with autocompletion and code navigation. The compiler, written in TypeScript, demonstrates the language’s capacity to handle complex projects. It analyzes source code, verifies types, and generates standard JavaScript while preserving program semantics.

The community has built a rich ecosystem around TypeScript. The DefinitelyTyped repository gathers thousands of type definition files for traditional JavaScript libraries. These declarations enable the use of existing libraries with the advantages of static typing. Successive versions bring advanced features: generic types, conditional types, utility types. These additions allow the expression of complex constraints and reinforce code safety. A new version is released every two months, ensuring constant evolution.

TypeScript has established more rigorous practices in the JavaScript ecosystem. Certain concepts have enriched JavaScript itself, as evidenced by new ECMAScript versions. This success testifies to Microsoft’s transformation toward a less closed approach to software development.