TypeScript extends JavaScript without changing runtime behavior

TypeScript accepts JavaScript syntax, then adds a compile-time type layer that disappears from emitted code.

Official documentation calls it a typed superset because JavaScript syntax remains legal TypeScript syntax.

That compatibility supports incremental adoption, but valid JavaScript may still produce TypeScript type errors.

Type annotations describe developer expectations; they do not create runtime guards or alter JavaScript values.

Strict settings improve static evidence across assignments, returns, nullability, and function boundaries.

Structural compatibility keeps ordinary JavaScript-shaped objects practical across existing APIs and libraries.

TypeScript documentation states that types never change JavaScript runtime behavior, so external data still requires validation.

Use TypeScript to constrain development decisions, not to redefine the runtime executing the program.