0
0
Typescriptprogramming~10 mins

InstanceType type in Typescript - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - InstanceType type
Define a class
Use InstanceType<Type>
Get the instance type of the class
Use instance type for variables or functions
InstanceType takes a class type and gives you the type of its instance, letting you use that instance type elsewhere.
Execution Sample
Typescript
class Person {
  name: string = '';
}
type PersonInstance = InstanceType<typeof Person>;
const p: PersonInstance = new Person();
This code defines a class Person, then uses InstanceType to get the type of its instance, and creates a variable p of that instance type.
Execution Table
StepActionEvaluationResult
1Define class PersonPerson is a class with property name:stringPerson type created
2Use InstanceType<typeof Person>Extract instance type of PersonPersonInstance is type { name: string }
3Declare variable p: PersonInstancep is typed as the instance type of Personp can access property name
4Assign new Person() to pCreate new instance of Personp is a Person instance with name initialized to ''
5Access p.namep.name is stringAllowed and type safe
6EndNo errorsExecution stops
💡 All steps complete, instance type used correctly
Variable Tracker
VariableStartAfter Step 4Final
Personclass definitionclass definitionclass definition
PersonInstanceundefined{ name: string }{ name: string }
pundefinedPerson instance with name=''Person instance with name=''
Key Moments - 2 Insights
Why do we use typeof Person inside InstanceType?
InstanceType expects a type representing a class constructor, so we use typeof Person to get the class type, not the instance type. See execution_table step 2.
Can we assign an object literal to p without using new Person()?
Yes, because TypeScript uses structural typing and PersonInstance matches { name: string }, so { name: '' } type-checks. But new Person() creates a proper class instance. See execution_table step 4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table step 2, what does InstanceType<typeof Person> produce?
AThe type of the Person class itself
BThe type of an instance of Person
CA string literal 'Person'
DAn error
💡 Hint
Check the 'Evaluation' and 'Result' columns in step 2 of the execution_table
At which step is the variable p assigned an actual instance of Person?
AStep 1
BStep 2
CStep 4
DStep 5
💡 Hint
Look at the 'Action' column in the execution_table for when p is assigned
If we remove 'typeof' from InstanceType<typeof Person>, what happens?
AIt causes a TypeScript error
BIt still works the same
CIt changes p to be a string
DIt makes p any type
💡 Hint
Refer to key_moments question 1 and execution_table step 2
Concept Snapshot
InstanceType<Type> extracts the instance type from a class type.
Use typeof ClassName to get the class type.
Example: type T = InstanceType<typeof MyClass>;
T is the type of new MyClass().
Useful for typing variables or functions expecting class instances.
Full Transcript
This visual execution trace shows how the TypeScript utility type InstanceType works. First, we define a class Person with a property name. Then, we use InstanceType with typeof Person to get the instance type of the class. This instance type is assigned to PersonInstance. Next, we declare a variable p of type PersonInstance and assign it a new Person instance. We see that p can access the name property safely. Key points include using typeof to get the class type. The quizzes test understanding of these steps and common confusions.