Node runs your .ts by deleting the types.

Some of it is not a type.

erasable — nothing left to delete
WHAT V8 RECEIVES
interface Reading { celsius: number }
function read(r: Reading): string {
  return r.celsius.toFixed(1);
}
✓ runs, no build step stack traces keep the line and column you wrote, because the types are blanked in place
not erasable — it emits code
WHAT V8 RECEIVES
enum Scale { C, F }
interface Reading { celsius: number }
function read(r: Reading): string {
  return Scale[Scale.C] + r.celsius.toFixed(1);
}
✕ dies at process start ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX: TypeScript enum is not supported in strip-only mode
find it while typing tsc --erasableSyntaxOnly reports TS1294 on enums, const enums, value namespaces, parameter properties, import = require and the angle-bracket cast — the same six cases the demo watches Node refuse at startup
Node v26.1.0 · TypeScript 5.9.3 · every error string above is captured from the demo's own run
gdhami.net