TypeScript VS esbuild

Compare TypeScript vs esbuild and see what are their differences.


TypeScript is a superset of JavaScript that compiles to clean JavaScript output. (by microsoft)


An extremely fast JavaScript and CSS bundler and minifier (by evanw)
Our great sponsors
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarQube - Static code analysis for 29 languages.
  • Scout APM - Truly a developer’s best friend
  • talent.io - Download talent.io’s Tech Salary Report
TypeScript esbuild
883 239
84,538 33,415
0.9% -
9.9 9.7
6 days ago 4 days ago
TypeScript Go
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of TypeScript. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-10-01.
  • Ten Years of TypeScript
    8 projects | news.ycombinator.com | 1 Oct 2022
    > But they admitted namespaces, enums

    And decorators. But this was very early on and they won’t ever do it again unless there’s a drastic change on principle and probably a reorg of global proportion. They categorically reject anything with runtime implications now, and to the point of decorators are actively working to align them with the standard as it’s approaching stability.

    > and interfaces into the language (the latter becoming more and more confusing as type aliases got more expressive) […] Is "as", "is", or "satisfies" expression-level?

    No. All of this is completely separate from the runtime and on a standards course to be treated effectively as comments.

    > But the enums!

    I’m one of the minority who actually likes TS enums, but I strongly suspect they’ll be deprecated, alongside namespaces, as soon as there’s general consensus around types as comments. The TypeScript team considers these mistakes and would very much like to be able to drop them. I’d welcome that too even though I quite like enums.

    The fact is TS has considerable backwards compatibility expectations, and aligning their mistakes with their goals is great on principle but something which would require thousands upon thousands of hours of labor for people to accommodate.

    You can snipe all you want, but if you think it’s that easy to resolve maybe I can direct you to https://github.com/microsoft/TypeScript/pulls

    I’m not affiliated with the team in any way but I’m almost totally certain they’d welcome a contribution that gets them closer to their stated principles where historical designs are entrenched, without breaking workflows for thousands of people and interrupting releases for millions.

    8 projects | news.ycombinator.com | 1 Oct 2022
    TypeScript has lots of great features and a few bizarrely bad ones. It’s great in spite of itself.

    The main misfeature is their dogmatic refusal to rewrite import paths (citing the “Preserve runtime behavior of all JavaScript code” principle mentioned in this article). Here’s a good summary of the problems this causes: https://github.com/microsoft/TypeScript/issues/42151

    I’m curious, how many people are using TSC only for type-checking, and a different system (eg esbuild or ts-node) to actually compile/bundle/execute their code?

    I think TypeScript would be even stronger if they focused fully on type-checking, and relaxed some of those dogmatic restrictions (and the many, many confusing config options) imposed by the JS code generator.

  • [AskJS] Do you consider ESM to have more benefits than drawbacks in node?
    6 projects | reddit.com/r/javascript | 27 Sep 2022
    Because it's implicit, CJS creates a bunch of resolution issues with Typescript, to the point where if you want to code for the browser, you can't easily can't and have to either recompile with something like webpack to rewrite the module resolution, or add .js to all your TS imports, which already looks weird (you'd think you're importing the .ts files). sip.js has that issue.
  • Announcing TypeScript 4.9 Beta
    2 projects | reddit.com/r/typescript | 24 Sep 2022
  • Peço ajuda numa oportunidade do trabalho
    3 projects | reddit.com/r/brdev | 23 Sep 2022
  • Ezno
    11 projects | news.ycombinator.com | 23 Sep 2022
    You can't actually narrow `unknown` down to a structure yet, as you have no way to test whether `property in unknown` or not.

    Well, until this is released! https://github.com/microsoft/TypeScript/pull/50666

  • How To Choose The Right Framework For Your Next Node.js App.
    8 projects | dev.to | 23 Sep 2022
    TypeScript ready: we work hard to maintain a TypeScript type declaration file so we can support the growing TypeScript community.
  • Learn how to unleash the full potential of the type system of TypeScript
    11 projects | news.ycombinator.com | 20 Sep 2022
  • Write typesafe APIs with zodios
    2 projects | dev.to | 17 Sep 2022
    Writing client APIs, that gives you autocompletion is time consuming. You allways endup writing the same kind of boilerplate code or have to use openapi code generators that are a pain to maintain. Zodios was created to make creating frontend (and optionally backend) API client a breeze. It's is an open source REST API toolbox with end-to-end typesafety. It allows you to create a REST API with a clean, intuitive and declarative syntax. It's best used with TypeScript, but it's also usable with pure JavaScript.
  • Decorator creating with API
    2 projects | reddit.com/r/typescript | 17 Sep 2022


Posts with mentions or reviews of esbuild. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-09-15.
  • Angular + ESBUILD = -25/40% build time
    2 projects | dev.to | 15 Sep 2022
    Angular v.14 now supports esbuild, a "new" super fast JavaScript Bundler, also used by ViteJS.
  • Getting started with NestJS, Vite, and esbuild
    7 projects | dev.to | 15 Sep 2022
    Vite works by first dividing the modules in an application into two categories, dependencies and source code, because dependencies rarely change during development. Vite pre-bundles these dependencies using esbuild under the hood. For source code that might need transforming (CSS, JSX, etc.), Vite serves them over native ESM to the browser.
  • NestJS + esbuild workarounds
    7 projects | dev.to | 13 Sep 2022
    esbuild 0.15.x
  • How to make a modern npm package
    3 projects | dev.to | 11 Sep 2022
    As I mentioned before, it is not enough to provide only ESM or CJS support for the package, but you don't want to write two sets of code by hand that do the same thing, so you need a bundler that can transform TypeScript to ESM and CJS, I choose esbuild, because vite also choose it.
  • Vue 3、Tailwind CSS 3、esbuild、rollup.js 開發初始檔
    4 projects | dev.to | 8 Sep 2022
  • We want to make Nix better
    17 projects | news.ycombinator.com | 2 Sep 2022
    The external dependency problem is somewhat solved in npm (at least, as far as many users are concerned) by writing a module that downloads the appropriate binary.

    For example, esbuild is written in Go, which is compiled to a different binary for each system. The NPM for esbuild has 21 optional dependencies, one for each binary that it makes available. A post-install script [1] chooses which dependency to install. It seems like a lot of work for the maintainer?

    It probably helps that the Go SDK builds static binaries.

    [1] https://github.com/evanw/esbuild/blob/master/lib/npm/node-in...

  • Discover A New Framework: SolidJS 🧑‍💻
    12 projects | dev.to | 2 Sep 2022
    Powered mainly by the Vue community, Vite is a new kind of JavaScript tool, to start a new Web project very quickly, while offering a modern environment. Inspired by RollupJS (but also ESBuild), Vite has many features, including:
  • Better ways to Create React App
    3 projects | dev.to | 29 Aug 2022
    Enter esbuild: written in Go and advertised to be 10-100 times faster than any other popular bundler.
  • [AskJS] When it's time to migrate away from CommonJS
    2 projects | reddit.com/r/javascript | 25 Aug 2022
    Join me as I walk through the current state of JavaScript's module ecosystem, outline how you can prepare for a migration to an ESM bundler, and step through the challenges of trying to configure 3 different popular build tools: rollup.js, Parcel, and esbuild.
  • Create react app with esbuild
    3 projects | dev.to | 25 Aug 2022
    Esbuild is a new javascript bundler. It's written in Go and is extremely fast. Let's go to use it to create react app from scratch without webpack

What are some alternatives?

When comparing TypeScript and esbuild you can also consider the following projects:

swc - Rust-based platform for the Web

vite - Next generation frontend tooling. It's fast!

Rollup - Next-generation ES module bundler

webpack - A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.

parcel - The zero configuration build tool for the web. 📦🚀

terser - 🗜 JavaScript parser, mangler and compressor toolkit for ES6+

Tailwind CSS - A utility-first CSS framework for rapid UI development.

import-maps - How to control the behavior of JavaScript imports

ts-node - TypeScript execution and REPL for node.js

Snowpack - ESM-powered frontend build tool. Instant, lightweight, unbundled development. ✌️ [Moved to: https://github.com/FredKSchott/snowpack]

PostCSS - Transforming styles with JS plugins

tsup - The simplest and fastest way to bundle your TypeScript libraries.