Lesson 11 / 31
TypeScript Compilation
Learn how Babel and SWC strip TypeScript types without type-checking, and why you still run tsc.
Type erasure: removing types
Babel and SWC strip TypeScript syntax but do not type-check. They remove : Type, <T>, as Type, etc., leaving plain JavaScript that runs.
TypeScript to JavaScript transformation
Type annotations vanish; the logic remains. Use tsc or IDE for type checking, Babel/SWC for transpilation.
// Input: TypeScript
function greet(name: string): string {
return `Hello, ${name}`;
}
// Output: JavaScript (types gone)
function greet(name) {
return `Hello, ${name}`;
}Always use tsc for type checking
Babel and SWC remove types silently. If you have a type error (wrong property name, wrong parameter type), transpilation succeeds anyway. Run tsc --noEmit in CI to catch type bugs before shipping.