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.