0
0
Typescriptprogramming~5 mins

Generic class with constraints in Typescript - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What is a generic class in TypeScript?
A generic class is a class that can work with any data type specified when creating an instance. It uses type parameters to allow flexibility while keeping type safety.
Click to reveal answer
intermediate
What does it mean to add constraints to a generic class?
Adding constraints means limiting the types that can be used with the generic class. This is done using the extends keyword to require the type to have certain properties or methods.
Click to reveal answer
intermediate
How do you declare a generic class with a constraint that the type must have a <code>length</code> property?
You declare it like this: <pre>class MyClass&lt;T extends { length: number }&gt; { /* ... */ }</pre> This means <code>T</code> must have a <code>length</code> property of type <code>number</code>.
Click to reveal answer
intermediate
Why use constraints in generic classes?
Constraints let you safely use properties or methods of the generic type inside the class, because you know those members exist. This prevents errors and improves code reliability.
Click to reveal answer
beginner
Example: What will this code print?<br><pre>class Box&lt;T extends { name: string }&gt; {<br>  constructor(public content: T) {}<br>  printName() {<br>    console.log(this.content.name);<br>  }<br>}<br>const box = new Box({ name: 'Apple' });<br>box.printName();</pre>
It will print Apple because the content object has a name property with the value 'Apple'. The constraint ensures T has a name string.
Click to reveal answer
What keyword is used to add constraints to a generic type in TypeScript?
Aconstrains
Bimplements
Cextends
Drestricts
Which of these is a valid generic class declaration with a constraint?
Aclass Data&lt;T requires { id: number }&gt; {}
Bclass Data&lt;T extends { id: number }&gt; {}
Cclass Data&lt;T implements { id: number }&gt; {}
Dclass Data&lt;T restricts { id: number }&gt; {}
Why might you add a constraint like T extends { length: number } to a generic class?
ATo force <code>T</code> to be a string.
BTo prevent <code>T</code> from having a <code>length</code> property.
CTo make <code>T</code> only accept numbers.
DTo ensure <code>T</code> has a <code>length</code> property so you can use it safely inside the class.
What happens if you try to create an instance of a generic class with a type that does not meet the constraint?
ATypeScript will show a compile-time error.
BThe code will run but throw a runtime error.
CThe constraint is ignored and the code compiles.
DThe generic type automatically changes to <code>any</code>.
Which of these is NOT a benefit of using generic constraints?
AForcing the generic type to be a specific concrete type
BImproved type safety
CAbility to use specific properties or methods of the generic type
DPreventing invalid types from being used
Explain what a generic class with constraints is and why it is useful in TypeScript.
Think about how you tell TypeScript what kind of types are allowed for the generic.
You got /5 concepts.
    Describe how you would write a generic class that only accepts types with a 'name' string property and how you would use it.
    Focus on the constraint and accessing the 'name' property inside the class.
    You got /3 concepts.