Getty Images
Why did TypeScript become GitHub's fastest growing language?
TypeScript recently became the fastest growing language on GitHub. Explore the reasons for the shift and what it means for the broader development ecosystem.
If you asked 100 software developers to predict what the fastest-growing programming language on GitHub was in 2025, it's likely that some people would guess Python, given the language's popularity in AI and data science. According to GitHub's 2025 Octoverse report, that guess would be wrong.
While Python had one of the most active user communities on GitHub in 2025, TypeScript had the highest usage and the most new contributors.
Key takeaways:
- TypeScript was the fastest growing software development language in 2025, according to GitHub research. This is the most significant shift in language trends in over a decade.
- TypeShift's increased use in 2025 was driven by the adoption of AI-assisted coding tools and a growing number of development frameworks, SDKs and IDEs that enhance JavaScript with TypeScript by default.
- A dramatic increase in TypeScript contributors suggests that AI isn't just changing how long it takes to write code; it is also influencing which languages developers use to make AI-assisted coding more reliable.
- The research shows that AI-assisted development tools perform significantly better in production when the code they work with is statically typed.
What is TypeScript?
TypeScript is an open-source programming language that Microsoft developed to make complex JavaScript applications easier to build, maintain and scale.
Technically, TypeScript is a superset that transpiles -- converts -- typed syntax into plain JavaScript. During the build process, the TypeScript compiler analyzes the codebase, flags type-related errors and then outputs standard JavaScript to ensure full compatibility with the application's broader ecosystem.
Essentially, TypeScript enhances JavaScript by giving it an optional static type system that uses data type definitions to tell the compiler what properties and methods a value should have. The compiler uses these to verify that a codebase specifies the mandatory and optional properties of an object consistently and correctly. Developers can write type definitions manually or they can use TypeScript's type inference engine to determine types automatically.
Type definitions are important because shared type definitions act as enforceable contracts between different parts of a software application. If one part of an application violates a contract, the TypeScript compiler surfaces the issue immediately and the editor used to write TypeScript highlights every affected use across the codebase to make the effect of the violation clear. Shared type definitions can serve as living documentation that stays up to date as the codebase evolves.
TypeScript is widely used by enterprise software teams, cloud-native development organizations and open source developers. The source code is publicly available on GitHub under the Apache 2.0 license, and the current version of TypeScript is part of the TypeScript 5.x release line.
In March 2025, Microsoft announced plans to give TypeScript a new native TypeScript compiler written in Rust. This change is expected to provide faster type checks, shorten developer feedback loops and enable more accurate AI-assisted coding. Because the new compiler will be a drop-in replacement for TypeScript's current compiler, organizations will be able to take advantage of the improvements without needing to rewrite code or change how they use TypeScript.
Why more developers are using TypeScript
JavaScript was originally designed as a lightweight scripting language for the Netscape Navigator browser. To make JavaScript easy to use, the scripting language was designed to use dynamic types. In a dynamically typed language, variables are not bound to specific type definitions ahead of time. Instead, type definitions are determined by whatever value a variable holds when the program executes.
Back in 1995, dynamic typing made sense because JavaScript code snippets were primarily used to build simple, interactive web page components called widgets. Today, however, JavaScript is used to build large, distributed software systems that often contain hundreds of Node.js microservices, and feature cloud-based APIs and complex web application or cloud-native application architectures.
Unfortunately, as JavaScript applications have become larger and more complex, dynamic typing is making it harder for developers to identify structural errors in a cost-effective manner. When a coding error is caught early, it can usually be corrected immediately by the developer who introduced it. If the same issue is identified during integration testing, staging or production, however, fixes often require coordinated changes, retesting, redeployments and even rollbacks to previous commits, builds or releases.
All of this takes time that wasn't part of the original plan -- and in software development, as in life, time is money. TypeScript solves this problem by adding an optional static type system on top of JavaScript.
Catch type errors early in the development process
One of TypeScript's biggest strengths is its ability to catch type errors early in the development process. When a developer defines a function, object or API contract, the TypeScript compiler evaluates how those definitions are used across the project and immediately reports mismatches in the editor during compilation.
TypeScript's static types, explicit contracts and early validation enable development pipelines to catch structural errors early and prevent invalid code from breaking during unit tests and in staging environments. The early feedback TypeScript provides gives developers a clearer understanding of how data flows through the codebase, helps shorten successive feedback loops and prevents many errors from ever reaching production.
Improve IDE autocomplete and refactoring
IDEs enhance development workflows by offering autocomplete and refactoring tools for the specific languages and frameworks a development team uses.
A TypeScript-aware IDE can examine both explicit and inferred types for variables, functions, objects and APIs, and determine exactly which properties, methods and values are valid at any given point in the program. This capability enables AI-assisted development tools to provide autocomplete suggestions that reflect actual data shape instead of relying on heuristics or partial type inference -- like plain JavaScript editors do.
Improve SDK interaction with third-party applications.
TypeScript improves SDK interaction with third-party applications by giving developers strong, compile-time guarantees about how external APIs should be used.
TypeScript can understand any API for which data type definitions exist. As developers write code against an SDK that ships with type definitions, TypeScript will check each interaction against the type definitions and immediately issue an error alert if the interaction violates the API's contract.
Over time, type checks can reduce integration errors and make third-party services easier to adopt and maintain. When developers can view type definitions directly in their SDK, the definitions essentially become a type of built-in documentation that makes integrations faster to implement and safer to maintain.
Enable distributed JavaScript codebases to be managed at scale
TypeScript can help development teams manage large, distributed JavaScript codebases by turning what would otherwise be a loose collection of scripts and services into a system with explicit, enforceable contracts.
In plain JavaScript, there's no built-in way to guarantee that one module, microservice or front-end component actually sends the right data to another. As a codebase grows across clients, servers, Node.js services and third-party APIs, the lack of structure can make it easy for a small change in one place to break something significant elsewhere.
TypeScript enhances JavaScript by adding static types, allowing object shapes, function signatures and API contracts to be defined in one place and validated everywhere they are used. At scale, this can pay off in a few big ways:
- Distributed teams can work on code simultaneously. TypeScript's type definitions create a shared contract between different parts of a JavaScript application. This allows distributed teams to work independently on different coding tasks and rely on the type system to enforce consistency.
- Teams can use type definitions as documentation. New or rotating team members can use type definitions to learn exactly what each service, module or component expects and returns, without needing to reverse engineer code or seek out third-party documentation.
- TypeScript enables safer refactoring at scale. If one team changes a shared interface or data model, other teams can immediately see if the change breaks an existing dependency.
- TypeScript can trace usage across shared packages and services that consume the same type definitions. This allows it to surface exactly where code breaks when a contract changes.
- TypeScript can help reduce incompatibility between services and client applications by ensuring consistent client-side and server-side API contracts.
- TypeScript's static types, explicit contracts and early validation allow automated pipelines to catch structural errors early and prevent invalid code from reaching later stages of deployment.
What the increased use of TypeScript says about the future of software development
The increased use of TypeScript over the past year suggests that the future of software development will depend on programming languages and development tools that can reduce uncertainty before code ever runs.
The increase of over a million TypeScript contributors in 2025 indicates a growing preference for languages and tools that identify problems at build time, rather than at runtime or in production. This trend aligns with shift-left testing and other strategies designed to identify problems sooner, reduce rework and lower the cost of fixing defects.
In the future, TypeScript is likely to become a preferred language for agentic AI development tools. Studies have shown that AI-assisted coding tools hallucinate less when constraints are clearly defined. TypeScript's static types, explicit contracts and early validation provide guardrails that offer just enough structure to support CI/CD workflows, keeping code functional and safe to use.
Margaret Rouse is an award-winning writer and technologist known for her ability to explain the value of emerging technology to business users.