Bird
Raised Fist0
Typescriptprogramming~10 mins

Static members with types in Typescript - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Static members with types
Class Definition
↓
Static Member Declared
↓
Access Static Member via Class
↓
Use Static Member Value
↓
End
This flow shows how a static member is declared inside a class and accessed directly via the class without creating an instance.
Execution Sample
Typescript
class Counter {
  static count: number = 0;
  static increment() {
    Counter.count++;
  }
}
Counter.increment();
console.log(Counter.count);
This code defines a class with a static number and a static method to increase it, then calls the method and prints the static value.
Execution Table
StepActionStatic Member 'count'Output
1Class Counter defined with static count = 00
2Call Counter.increment()0 -> 1
3console.log(Counter.count)11
4End of execution1
💡 No more code to execute, program ends
Variable Tracker
VariableStartAfter Step 2After Step 3Final
Counter.count0111
Key Moments - 2 Insights
Why do we access 'count' using the class name and not an instance?
Because 'count' is declared static, it belongs to the class itself, not to any object instance. See execution_table step 2 where Counter.increment() changes Counter.count directly.
Can we access 'count' from an instance of Counter?
No, static members are not accessible from instances. They only exist on the class. This is why we use Counter.count, not instance.count.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of 'count' after step 2?
Aundefined
B0
C1
D2
💡 Hint
Check the 'Static Member count' column at step 2 in the execution_table.
At which step is the static member 'count' printed to the console?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look at the 'Output' column in the execution_table to find when console.log runs.
If we remove 'static' from 'count', what changes in the execution?
ACounter.count will cause an error because it's no longer static
BCounter.count can still be accessed the same way
CThe value of count will increment twice
DNo change in output
💡 Hint
Static members must be accessed on the class; without static, 'count' is an instance property.
Concept Snapshot
Static members belong to the class, not instances.
Declare with 'static' keyword and type: static name: type = value;
Access via ClassName.member, not instance.
Useful for shared data or utility methods.
Example: static count: number = 0;
Call with ClassName.count or ClassName.method().
Full Transcript
This example shows how to use static members in TypeScript. A static member is declared inside a class with the 'static' keyword and a type. It belongs to the class itself, not to any object created from the class. We can access or change static members directly using the class name. In the example, the class Counter has a static number called count starting at 0. The static method increment increases count by 1. We call Counter.increment() and then print Counter.count, which shows 1. Static members are useful for values or methods shared by all instances or when no instance is needed. Remember, you cannot access static members from an instance, only from the class.

Practice

(1/5)
1. Which statement about static members in TypeScript is true?
easy
A. Static members are private by default.
B. Static members can only be accessed through instances of the class.
C. Static members belong to the class itself, not to instances.
D. Static members must be declared inside the constructor.

Solution

  1. Step 1: Understand what static means

    Static members belong to the class itself, not to any object created from the class.
  2. Step 2: Check each option

    Static members belong to the class itself, not to instances. correctly states this. Static members can only be accessed through instances of the class. is wrong because static members are accessed via the class, not instances. Static members are private by default. is false; static members can have any access modifier. Static members must be declared inside the constructor. is incorrect; static members are declared outside the constructor.
  3. Final Answer:

    Static members belong to the class itself, not to instances. -> Option C
  4. Quick Check:

    Static = class-level member [OK]
Hint: Remember: static means class-level, not instance-level [OK]
Common Mistakes:
  • Thinking static members belong to instances
  • Trying to access static members via objects
  • Assuming static members are private by default
2. Which of the following is the correct syntax to declare a static property with type number in a TypeScript class?
easy
A. static count: number = 0;
B. count static: number = 0;
C. static number count = 0;
D. number static count = 0;

Solution

  1. Step 1: Recall static property syntax

    In TypeScript, static properties are declared with the keyword static before the property name and type.
  2. Step 2: Check each option

    static count: number = 0; uses correct order: static count: number = 0;. Options B, C, and D have incorrect order of keywords or types.
  3. Final Answer:

    static count: number = 0; -> Option A
  4. Quick Check:

    static + name + : + type + = value [OK]
Hint: Static keyword always comes before property name [OK]
Common Mistakes:
  • Placing type before static keyword
  • Swapping order of static and property name
  • Missing colon between property name and type
3. What will be the output of the following TypeScript code?
class Counter {
  static count: number = 0;
  increment() {
    Counter.count++;
  }
}
const c1 = new Counter();
const c2 = new Counter();
c1.increment();
c2.increment();
console.log(Counter.count);
medium
A. 0
B. 1
C. undefined
D. 2

Solution

  1. Step 1: Understand static property usage

    The static property count belongs to the class Counter, shared by all instances.
  2. Step 2: Trace the increments

    Both c1.increment() and c2.increment() increase Counter.count by 1 each, so total increments = 2.
  3. Final Answer:

    2 -> Option D
  4. Quick Check:

    Static count increments twice = 2 [OK]
Hint: Static properties are shared; increments add up [OK]
Common Mistakes:
  • Thinking static count resets per instance
  • Expecting output 1 instead of 2
  • Confusing instance and static properties
4. Identify the error in this TypeScript class using static members:
class Example {
  static value: string;
  constructor() {
    this.value = "Hello";
  }
}
medium
A. Cannot assign to static property using this inside constructor.
B. Static properties must be initialized outside the class.
C. Static properties cannot have type annotations.
D. Constructor cannot be used with static properties.

Solution

  1. Step 1: Understand static property access

    Static properties belong to the class, so they must be accessed via the class name, not this.
  2. Step 2: Identify the error in constructor

    Using this.value tries to access an instance property, but value is static. Correct access is Example.value.
  3. Final Answer:

    Cannot assign to static property using this inside constructor. -> Option A
  4. Quick Check:

    Static accessed via class, not this [OK]
Hint: Use ClassName, not this, to access static members [OK]
Common Mistakes:
  • Using this to access static properties
  • Thinking static properties must be initialized outside class
  • Believing constructor can't coexist with static members
5. Given this TypeScript class, how can you add a static method reset that sets count back to zero?
class Tracker {
  static count: number = 0;
  static increment() {
    this.count++;
  }
}
hard
A. Add reset() { Tracker.count = 0; } inside the class.
B. Add static reset() { this.count = 0; } inside the class.
C. Add static reset() { count = 0; } outside the class.
D. Add reset() { this.count = 0; } inside the class.

Solution

  1. Step 1: Define a static method inside the class

    Static methods must be declared with the static keyword inside the class.
  2. Step 2: Reset static property using this inside static method

    Inside a static method, this refers to the class, so this.count = 0; correctly resets the static property.
  3. Final Answer:

    Add static reset() { this.count = 0; } inside the class. -> Option B
  4. Quick Check:

    Static method + this resets static property [OK]
Hint: Static methods use static keyword and access static props via this [OK]
Common Mistakes:
  • Omitting static keyword on method
  • Using instance method to modify static property
  • Trying to reset static property outside class without static
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