In the previous section, we learned that when a variable in a closure context is shared between multiple instances of a class, the variable behaves like a static variable.
We will now see how we can create variables and methods that behave like a static variables. Let's start by declaring a TypeScript class named Counter:
class Counter { private static _COUNTER = 0; public increment() { this._changeBy(1); } public decrement() { this._changeBy(-1); } public value() { return Counter._COUNTER; } private _changeBy(val: number) { Counter._COUNTER += val; } }
The preceding class contains a static member named _COUNTER. The TypeScript compiler ...