node js

Introduction to ts-node

TypeScript’s popularity is on the rise. As TypeScript is a superset of JavaScript, running TypeScript files requires compilation to pure JavaScript before execution in the V8 engine. While you can automate this compilation by watching for file changes, there are times when you simply want to run your TypeScript script without the hassle. This is where ts-node comes to the rescue.


Before diving into using ts-node, ensure you have the following prerequisites in place:

  1. Node.js: Make sure you have the latest version of Node.js installed on your machine. If you haven’t already, you can follow the instructions in our How to Install Node.js and Create a Local Development Environment tutorial.
  2. npm: Familiarity with npm is essential. If you need a refresher, you can check out our guide on How To Use Node.js Modules with npm and package.json.
  3. TypeScript: You should have a basic understanding of TypeScript. If you’re new to TypeScript, our How To Set Up a New TypeScript Project article is an excellent starting point.

Step 1 — Getting Started with ts-node

To begin, you need to install TypeScript and ts-node. Since ts-node is an executable, there’s no need to import or require it in your scripts. If you don’t have a TypeScript project yet, you can use the following script to test ts-node:

npx ts-node reptile.ts

The above command may return a SyntaxError: Unexpected identifier message, highlighting a private class variable on the second line of reptile.ts. This error illustrates the need for ts-node.

Step 2 — Using ts-node for Running TypeScript Scripts

Running TypeScript scripts directly with Node.js can lead to errors. Ts-node simplifies this process. Execute your TypeScript script using ts-node as follows:

npx ts-node reptile.ts

If you’re unfamiliar with the npx command, it allows you to run project-specific binaries from the command line. The output will display two lists of reptile types, one potentially containing duplicates and one without. Ts-node efficiently handles TypeScript scripts, but there’s a way to make it even faster.

Step 3 — Speeding Up Execution

Under the hood, ts-node performs semantic checking to ensure error-free code and then compiles TypeScript into JavaScript. While this is the safest option, you can expedite the process by using the -T or --transpileOnly flag. This flag instructs ts-node to transpile to JavaScript without TypeScript error checking.

While it’s not always recommended, there are scenarios where using the -T flag is appropriate. For instance, when running someone else’s script or when you trust your editor and linter to catch errors:

npx ts-node -T reptile.ts

Running this command yields the same output as the previous one, but without TypeScript error checking. However, ts-node has more to offer, including a TypeScript REPL.

Step 4 — Exploring the TypeScript REPL

Another advantage of ts-node is the ability to use a TypeScript REPL, similar to running Node.js without any options. This REPL allows you to write TypeScript directly in your terminal for quick testing:

To access the TypeScript REPL, run ts-node without any arguments:

npx ts-node

Now, you can leverage TypeScript’s strictness right in your favorite terminal.


In this comprehensive guide, you’ve learned how to use ts-node to run TypeScript scripts efficiently. Additionally, you’ve explored the TypeScript REPL provided by ts-node, enhancing your TypeScript development experience.

If you’re eager to delve deeper into TypeScript, our article on How To Work With TypeScript in Visual Studio Code may prove invaluable in your journey.

© 2013 - 2024 Foreignerds. All Rights Reserved