airbnb/ts-migrate

A tool to help migrate JavaScript code quickly and conveniently to TypeScript

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 41 minutes ago
Added to GitGenius on September 12th, 2026
Created on December 5th, 2019
Open Issues & Pull Requests: 56 (+0)
GitHub issues: Enabled
Number of forks: 233
Total Stargazers: 5,617 (+0)
Total Subscribers: 41 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 28.2 hours
Mean response time: 252.6 days
90th percentile: 755.8 days
Tracked items: 3

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 4
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,075 days
Stale 30+ days: 4
Stale 90+ days: 4

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (1)
  • help wanted (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

ts-migrate is a codemod tool that automates the conversion of JavaScript projects to TypeScript.

The tool addresses the challenge of large-scale TypeScript migrations by automating the mechanical work of converting JavaScript or partially-typed TypeScript code into a compiling TypeScript project. Rather than requiring developers to manually rewrite code, ts-migrate applies a series of transformations that handle syntax conversion, type inference, and error suppression. The resulting code will compile but intentionally includes `// @ts-expect-error` annotations and `any` types as placeholders, acknowledging that the output is a starting point rather than a fully type-safe codebase. This approach trades initial type safety for speed, allowing teams to migrate large codebases quickly and then incrementally improve type quality afterward.

Teams should adopt ts-migrate when facing a substantial JavaScript codebase that needs TypeScript adoption but lack the resources for manual line-by-line conversion. The tool works best for projects where getting to a compiling state quickly matters more than immediate type perfection. The plugin-based architecture means the tool can be customized for different project structures and needs; the README describes two main migration configurations for general JavaScript-to-TypeScript conversion and for handling reignore scripts, with the ability to add custom plugins for domain-specific improvements like React prop-types handling.

The project maintains multiple published packages including the core ts-migrate tool, a plugins package, and a server component for interactive migration workflows. An example package demonstrates how to write custom plugins, indicating the maintainers have invested in making the extensibility model accessible to users.