Bird
Raised Fist0
Typescriptprogramming~5 mins

Generic interface declaration in Typescript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a generic interface in TypeScript?
A generic interface is a way to define an interface with a placeholder type that can be specified later, allowing the interface to work with different data types while keeping type safety.
Click to reveal answer
beginner
How do you declare a generic interface with one type parameter named <T>?
You write:
interface MyInterface<T> {
value: T;
}

This means the interface has a property 'value' of type T, which will be specified when used.
Click to reveal answer
beginner
Why use generic interfaces instead of fixed types?
Generic interfaces let you write flexible and reusable code that works with many types without losing the benefits of type checking.
Click to reveal answer
beginner
Example: What does this interface mean?
interface Box<T> { content: T; }
It means 'Box' can hold any type of content. When you use it, you specify the type, like Box<string> for a box holding strings or Box<number> for numbers.
Click to reveal answer
intermediate
Can a generic interface have multiple type parameters? How?
Yes. You separate them with commas inside the angle brackets. For example:
interface Pair<T, U> { first: T; second: U; }
Click to reveal answer
How do you declare a generic interface named 'Container' with one type parameter 'T'?
Ainterface Container { item: T; }
Binterface Container<T> { item: any; }
Cinterface Container<T> { item: T; }
Dinterface Container<T> { item: string; }
What is the benefit of using a generic interface?
AIt allows the interface to work with any type while keeping type safety.
BIt makes the interface only work with strings.
CIt disables type checking.
DIt makes the interface slower.
Which syntax correctly declares a generic interface with two type parameters?
Ainterface Pair<T; U> { first: T; second: U; }
Binterface Pair<T, U> { first: T; second: U; }
Cinterface Pair<T U> { first: T; second: U; }
Dinterface Pair { first: T; second: U; }
If you have interface Box<T> { content: T; }, what is the type of 'content' in let box: Box<number>;?
Anumber
Bstring
Cany
DT
Can you use a generic interface without specifying the type parameter?
AYes, it defaults to 'any'.
BNo, generic interfaces cannot be used.
CYes, it defaults to 'string'.
DNo, you must specify the type parameter.
Explain what a generic interface is and why it is useful in TypeScript.
Think about how you can write one interface that works with many types.
You got /4 concepts.
    Write a simple generic interface named 'Result' that holds a value of any type and a boolean indicating success.
    Use angle brackets <> to declare the generic type.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the <T> represent in a TypeScript generic interface declaration?
      easy
      A. A special type that only accepts strings
      B. A variable name for a function
      C. A keyword to declare a constant
      D. A placeholder for a type that will be specified later

      Solution

      1. Step 1: Understand generic syntax

        The <T> syntax in TypeScript is used to declare a generic type parameter, which acts as a placeholder for a type.
      2. Step 2: Identify the role of T

        This placeholder allows the interface to be flexible and reusable with different types specified later.
      3. Final Answer:

        A placeholder for a type that will be specified later -> Option D
      4. Quick Check:

        Generic <T> = Type placeholder [OK]
      Hint: Remember <T> means 'type to be given later' [OK]
      Common Mistakes:
      • Thinking T is a variable or constant
      • Confusing <T> with a function parameter
      • Assuming T is always a string type
      2. Which of the following is the correct syntax to declare a generic interface named Box with a type parameter T?
      easy
      A. interface Box<T> = { content: T; }
      B. interface Box<T> { content: T; }
      C. interface Box<T> content: T;
      D. interface Box { content: T; }

      Solution

      1. Step 1: Check interface declaration syntax

        In TypeScript, interfaces are declared with the keyword interface followed by the name and optional generic parameters in angle brackets.
      2. Step 2: Verify correct use of braces and type parameter

        The correct syntax includes curly braces to define the interface body and uses <T> to declare the generic type parameter.
      3. Final Answer:

        interface Box<T> { content: T; } -> Option B
      4. Quick Check:

        Generic interface syntax = interface Box<T> { content: T; } [OK]
      Hint: Generic interfaces need <T> and braces {} [OK]
      Common Mistakes:
      • Omitting the generic parameter <T>
      • Missing curly braces around interface body
      • Using equals sign instead of braces
      3. Given the interface declaration:
      interface Container<T> { value: T; }

      What is the output of this code?
      const numberContainer: Container<number> = { value: 42 };
      console.log(numberContainer.value);
      medium
      A. Error: Type mismatch
      B. undefined
      C. 42
      D. null

      Solution

      1. Step 1: Understand the generic interface usage

        The interface Container<T> expects a type parameter. Here, number is specified, so value must be a number.
      2. Step 2: Analyze the assigned object and console output

        The object { value: 42 } matches the interface with value as a number. Logging numberContainer.value prints 42.
      3. Final Answer:

        42 -> Option C
      4. Quick Check:

        Generic with number type outputs 42 [OK]
      Hint: Generic type sets property type; output matches assigned value [OK]
      Common Mistakes:
      • Expecting a runtime error due to generics
      • Confusing generic type with runtime type enforcement
      • Assuming output is undefined or null
      4. Identify the error in this generic interface usage:
      interface Pair<T> {
        first: T;
        second: T;
      }
      
      const pair: Pair = { first: 'hello', second: 'world' };
      medium
      A. Missing generic type argument when using Pair
      B. Properties first and second should be numbers
      C. Interface Pair cannot have two properties of the same type
      D. Object literal syntax is incorrect

      Solution

      1. Step 1: Check interface usage with generics

        The interface Pair<T> requires a type argument when used. Here, Pair is used without specifying <T>.
      2. Step 2: Identify the missing generic argument error

        TypeScript will report an error because the generic type parameter is missing when declaring pair.
      3. Final Answer:

        Missing generic type argument when using Pair -> Option A
      4. Quick Check:

        Generic interface usage needs type argument [OK]
      Hint: Always specify type argument when using generic interfaces [OK]
      Common Mistakes:
      • Forgetting to add <Type> when using generic interfaces
      • Assuming default type if omitted
      • Confusing property types with generic parameter
      5. You want to create a generic interface Result<T> that holds a data property of type T and a success boolean. Which of the following implementations correctly uses this interface to type a variable holding a string result?
      hard
      A. const res: Result<string> = { data: 'Done', success: true };
      B. const res: Result<string> = { data: 123, success: true };
      C. const res: Result = { data: 'Done', success: true };
      D. const res: Result<number> = { data: 'Done', success: true };

      Solution

      1. Step 1: Understand the generic interface requirements

        The interface Result<T> expects a data property of type T and a success boolean.
      2. Step 2: Check each option for correct type usage

        const res: Result<string> = { data: 123, success: true }; assigns a number to data but expects a string type, so it's incorrect.
        const res: Result<string> = { data: 'Done', success: true }; correctly assigns a string to data and includes success.
        const res: Result = { data: 'Done', success: true }; omits the generic type argument, which is required.
        const res: Result<number> = { data: 'Done', success: true }; uses number type but assigns a string, causing a type mismatch.
      3. Final Answer:

        const res: Result<string> = { data: 'Done', success: true }; -> Option A
      4. Quick Check:

        Generic type matches property type = const res: Result<string> = { data: 'Done', success: true }; [OK]
      Hint: Match generic type with property value type exactly [OK]
      Common Mistakes:
      • Assigning wrong type to generic property
      • Omitting generic type argument
      • Mixing up generic type parameters
      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