Bird
Raised Fist0
Typescriptprogramming~20 mins

What types exist only at compile time in Typescript - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
TypeScript Compile-Time Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Types that exist only at compile time in TypeScript
Which of the following types exist only during TypeScript's compile time and do not appear in the generated JavaScript code?
AInterfaces and type aliases
BClasses and enums
CFunctions and variables
DObjects and arrays
Attempts:
2 left
💡 Hint
Think about what TypeScript removes when it compiles to JavaScript.
❓ Predict Output
intermediate
1:30remaining
Output of TypeScript code with interface
What will be the output when this TypeScript code is compiled and run as JavaScript?
Typescript
interface Person {
  name: string;
  age: number;
}

const user: Person = { name: 'Alice', age: 30 };
console.log(user);
A{ name: 'Alice', age: 30 }
Bundefined
CError: Interface Person does not exist at runtime
DReferenceError: user is not defined
Attempts:
2 left
💡 Hint
Interfaces disappear after compilation, but objects remain.
❓ Predict Output
advanced
1:30remaining
Type alias usage and runtime presence
Given this TypeScript code, what will be the output when compiled and run as JavaScript?
Typescript
type ID = number | string;

const userId: ID = 123;
console.log(typeof userId);
ATypeError at runtime
B"ID"
C"string"
D"number"
Attempts:
2 left
💡 Hint
Type aliases do not exist at runtime, only the value does.
🧠 Conceptual
advanced
1:30remaining
Which TypeScript constructs are erased at compile time?
Select the TypeScript constructs that are completely erased and do not exist in the emitted JavaScript code.
AEnums and namespaces
BInterfaces and type aliases
CClasses and functions
DVariables and constants
Attempts:
2 left
💡 Hint
Think about what is used only for type checking.
🧠 Conceptual
expert
2:00remaining
Understanding TypeScript's type system and runtime
Which statement correctly describes the relationship between TypeScript types and JavaScript runtime values?
AInterfaces are converted to JavaScript classes at runtime.
BAll TypeScript types exist at runtime as JavaScript objects.
CTypeScript types are only for compile-time checks and do not exist at runtime.
DType aliases generate JavaScript functions during compilation.
Attempts:
2 left
💡 Hint
Consider what happens to types after TypeScript compiles to JavaScript.

Practice

(1/5)
1. Which of the following TypeScript types exist only at compile time and do not produce any JavaScript code?
easy
A. Functions and variables
B. Classes and enums
C. Interfaces and type aliases
D. Objects and arrays

Solution

  1. Step 1: Understand TypeScript compile-time types

    Interfaces and type aliases are used only to check types during compilation and do not exist in the final JavaScript.
  2. Step 2: Identify runtime constructs

    Classes, enums, functions, variables, objects, and arrays exist in the JavaScript output and run at runtime.
  3. Final Answer:

    Interfaces and type aliases -> Option C
  4. Quick Check:

    Compile-time only types = Interfaces, type aliases [OK]
Hint: Remember: interfaces and types vanish after compiling [OK]
Common Mistakes:
  • Thinking classes are compile-time only
  • Confusing enums with type aliases
  • Assuming variables are compile-time types
2. Which syntax correctly declares a type alias that exists only at compile time in TypeScript?
easy
A. type User = { name: string; age: number };
B. const User = { name: 'Alice', age: 30 };
C. class User { name: string; age: number; }
D. enum User { Name, Age }

Solution

  1. Step 1: Identify type alias syntax

    Using type User = { ... } declares a type alias that exists only during compilation.
  2. Step 2: Differentiate from runtime declarations

    Const objects, classes, and enums produce JavaScript code and exist at runtime.
  3. Final Answer:

    type User = { name: string; age: number }; -> Option A
  4. Quick Check:

    Type alias syntax = type ... = ... [OK]
Hint: Type aliases start with 'type' keyword [OK]
Common Mistakes:
  • Using const or class instead of type alias
  • Confusing enums with types
  • Missing semicolon in type alias
3. What will be the output of the following TypeScript code when compiled and run in JavaScript?
interface Person { name: string; age: number; }
const p: Person = { name: 'Bob', age: 25 };
console.log(typeof Person);
medium
A. "undefined"
B. "object"
C. "function"
D. "string"

Solution

  1. Step 1: Understand interface removal at compile time

    Interfaces do not exist in JavaScript output, so Person is not defined at runtime.
  2. Step 2: Evaluate typeof on undefined identifier

    Using typeof Person when Person is not defined returns "undefined" as a string.
  3. Final Answer:

    "undefined" -> Option A
  4. Quick Check:

    Interfaces vanish, typeof interface = "undefined" [OK]
Hint: Interfaces disappear; typeof interface is undefined [OK]
Common Mistakes:
  • Expecting 'object' because of interface
  • Thinking interface is a function
  • Confusing interface with class
4. Identify the error in this TypeScript code snippet:
type Animal = { species: string };
console.log(Animal);
medium
A. Missing semicolon after type declaration
B. Animal should be declared as an interface
C. Type alias syntax is incorrect
D. Animal is not defined at runtime, so console.log causes an error

Solution

  1. Step 1: Recognize type alias compile-time only nature

    Type aliases do not exist in JavaScript, so Animal is not a runtime value.
  2. Step 2: Understand console.log usage

    Trying to log Animal causes a runtime error because it is undefined in JavaScript.
  3. Final Answer:

    Animal is not defined at runtime, so console.log causes an error -> Option D
  4. Quick Check:

    Logging type alias = runtime error [OK]
Hint: Type aliases can't be used as runtime values [OK]
Common Mistakes:
  • Thinking type aliases exist at runtime
  • Ignoring runtime vs compile-time difference
  • Assuming missing semicolon causes error
5. You want to create a function that accepts only objects matching a specific shape but does not add any runtime overhead. Which TypeScript feature should you use?
hard
A. Use a type alias and create a runtime object
B. Use an interface to define the object shape
C. Use a class to define the object shape
D. Use an enum to define the object shape

Solution

  1. Step 1: Understand compile-time type checking

    Interfaces define object shapes only at compile time and do not generate JavaScript code, so no runtime overhead.
  2. Step 2: Compare with other options

    Classes and enums generate runtime code; type aliases do not create runtime objects unless explicitly instantiated.
  3. Final Answer:

    Use an interface to define the object shape -> Option B
  4. Quick Check:

    Interfaces = compile-time only, no runtime overhead [OK]
Hint: Interfaces check shape without runtime cost [OK]
Common Mistakes:
  • Using classes which add runtime code
  • Confusing enums with object shapes
  • Thinking type aliases create runtime objects
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