Node.js theorytheory 0/50 · 0%
Tooling · hard

47. TypeScript with Node

Type safety on top of the same runtime.

Node doesn't execute TypeScript directly (aside from newer experimental type-stripping support); typically you compile with `tsc` (or use `ts-node`/`tsx` for development) to plain JavaScript that Node then runs. `tsconfig.json` configures the target module system, output directory and strictness.

json
{
  "compilerOptions": {
    "target": "ES2022",
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "outDir": "dist",
    "strict": true
  }
}
ts
interface Balance { address: string; amountWei: bigint; }

function formatBalance(b: Balance): string {
  return `${b.address}: ${b.amountWei.toString()}`;
}

Types exist only at compile time and are erased in the emitted JavaScript — they catch mistakes before deployment but add no runtime checking, which is why input validation at API boundaries (see topic 27) is still necessary even in a fully-typed codebase.

Check your understanding

  1. 1. Does Node execute TypeScript files directly by default?

  2. 2. Are TypeScript's types checked at runtime in the compiled output?

  3. 3. Why is runtime input validation still needed in a TypeScript codebase?