Bird
Raised Fist0
Typescriptprogramming~5 mins

What survives compilation to JavaScript in Typescript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What happens to TypeScript types after compilation to JavaScript?
TypeScript types are removed during compilation. They do not exist in the JavaScript output because JavaScript does not support static types.
Click to reveal answer
beginner
Do interfaces in TypeScript appear in the compiled JavaScript code?
No, interfaces are only used for type checking during development and are removed during compilation. They do not generate any JavaScript code.
Click to reveal answer
beginner
Which TypeScript features survive compilation to JavaScript?
Features like classes, functions, variables, and control flow statements survive because they have direct JavaScript equivalents.
Click to reveal answer
intermediate
What happens to enums in TypeScript after compilation?
Enums are converted into JavaScript objects with properties representing the enum members, so they survive compilation as usable JavaScript code.
Click to reveal answer
beginner
Why does TypeScript remove type annotations during compilation?
Because JavaScript does not support static typing, type annotations are only for development help and are removed to produce valid JavaScript code.
Click to reveal answer
What happens to TypeScript type annotations after compilation?
AThey are preserved as variables
BThey become JavaScript comments
CThey are removed and do not appear in JavaScript
DThey are converted to runtime type checks
Which of these survives compilation from TypeScript to JavaScript?
AClasses
BType aliases
CInterfaces
DType assertions
How are TypeScript enums represented in compiled JavaScript?
AAs JavaScript objects with properties
BThey are removed completely
CAs strings only
DAs functions
Do TypeScript interfaces generate any JavaScript code?
AYes, as objects
BNo, they are removed
CYes, as functions
DYes, as classes
Why does TypeScript remove type information during compilation?
ATo add comments
BTo reduce file size
CTo improve runtime performance
DBecause JavaScript does not support types
Explain what parts of TypeScript code remain after compilation to JavaScript and why.
Think about what JavaScript can run and what is only for development.
You got /4 concepts.
    Describe how TypeScript enums are transformed in the compiled JavaScript output.
    Consider how enums can be used after compilation.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which of the following TypeScript elements does NOT survive compilation to JavaScript?
      easy
      A. Interfaces
      B. Functions
      C. Classes
      D. Variables

      Solution

      1. Step 1: Understand TypeScript compilation

        TypeScript removes type-only constructs like interfaces during compilation.
      2. Step 2: Identify which elements remain

        Functions, classes, and variables are actual code and remain in JavaScript output.
      3. Final Answer:

        Interfaces -> Option A
      4. Quick Check:

        Interfaces are erased in JS output [OK]
      Hint: Remember: types/interfaces vanish, code stays [OK]
      Common Mistakes:
      • Thinking interfaces generate JavaScript code
      • Confusing types with variables
      • Assuming classes disappear
      2. Which of these TypeScript code snippets will produce JavaScript code after compilation?
      easy
      A. type User = { name: string };
      B. function greet() { console.log('Hi'); }
      C. type ID = number | string;
      D. interface User { name: string }

      Solution

      1. Step 1: Identify code vs type declarations

        Types and interfaces are erased; only executable code remains.
      2. Step 2: Check each option

        Only the function greet produces JavaScript code.
      3. Final Answer:

        function greet() { console.log('Hi'); } -> Option B
      4. Quick Check:

        Functions compile to JS code [OK]
      Hint: Only executable code survives compilation [OK]
      Common Mistakes:
      • Assuming type aliases produce JS code
      • Confusing interfaces with functions
      • Thinking all declarations compile to JS
      3. What will be the output JavaScript code after compiling this TypeScript snippet?
      interface Person { name: string; age: number; }
      const user: Person = { name: 'Alice', age: 30 };
      console.log(user.name);
      medium
      A. const user = { name: 'Alice', age: 30 }; console.log(user.name);
      B. interface Person { name: string; age: number; } const user = { name: 'Alice', age: 30 }; console.log(user.name);
      C. const user: Person = { name: 'Alice', age: 30 }; console.log(user.name);
      D. SyntaxError: interface not allowed in JS

      Solution

      1. Step 1: Remove type-only declarations

        The interface Person is removed during compilation.
      2. Step 2: Remove type annotations

        The variable user loses its : Person annotation.
      3. Final Answer:

        const user = { name: 'Alice', age: 30 }; console.log(user.name); -> Option A
      4. Quick Check:

        Types/interfaces removed, code remains [OK]
      Hint: Types vanish, only code stays in JS output [OK]
      Common Mistakes:
      • Leaving interface in output
      • Keeping type annotations in JS
      • Expecting syntax errors for interfaces
      4. Identify the error in this TypeScript code that prevents correct JavaScript output:
      interface Data { id: number; }
      function printId(data: Data) {
        console.log(data.id);
      }
      printId({ id: 5 });
      medium
      A. The interface Data causes a runtime error in JavaScript.
      B. The type annotation data: Data is removed, so data.id is undefined.
      C. The function printId is removed during compilation.
      D. There is no error; the code compiles to valid JavaScript.

      Solution

      1. Step 1: Understand interface removal

        Interfaces are erased and do not cause runtime errors.
      2. Step 2: Check function and parameter

        Type annotations are removed but the function and its logic remain intact.
      3. Final Answer:

        There is no error; the code compiles to valid JavaScript. -> Option D
      4. Quick Check:

        Interfaces vanish, functions remain [OK]
      Hint: Interfaces don't cause runtime errors [OK]
      Common Mistakes:
      • Thinking interfaces cause runtime errors
      • Believing type annotations remain in JS
      • Assuming functions get removed
      5. Given this TypeScript code, what will the compiled JavaScript output be?
      type Status = 'success' | 'error';
      class Response {
        constructor(public status: Status) {}
        print() {
          console.log(`Status: ${this.status}`);
        }
      }
      const res = new Response('success');
      res.print();
      hard
      A. SyntaxError: Type aliases not allowed in JavaScript
      B. type Status = 'success' | 'error'; class Response { constructor(public status: Status) {} print() { console.log(`Status: ${this.status}`); } } const res = new Response('success'); res.print();
      C. class Response { constructor(status) { this.status = status; } print() { console.log(`Status: ${this.status}`); } } const res = new Response('success'); res.print();
      D. class Response { constructor() {} print() { console.log('Status unknown'); } } const res = new Response(); res.print();

      Solution

      1. Step 1: Remove type alias

        The type Status is erased during compilation.
      2. Step 2: Remove parameter type annotation

        The constructor's public status: Status becomes status without type.
      3. Step 3: Keep class and method code

        The class and method remain unchanged except for type removal.
      4. Final Answer:

        class Response { constructor(status) { this.status = status; } print() { console.log(`Status: ${this.status}`); } } const res = new Response('success'); res.print(); -> Option C
      5. Quick Check:

        Types removed, class code remains [OK]
      Hint: Types vanish, classes and methods stay intact [OK]
      Common Mistakes:
      • Expecting type aliases in JS output
      • Thinking constructor parameters keep types
      • Assuming class code is removed
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard