Private members powered by closures

In the previous section, we learned that closures can access variables that persist beyond the lexical scope from which they were created. These variables are not part of the function prototype or body, but they are part of the function context.

Because there is no way we can directly invoke the function context, the context variables and methods can be used to emulate private members at runtime. The main advantage of using closures to emulate private members (instead of the TypeScript private access modifier) is that closures will prevent access to private members at runtime.

TypeScript avoids emulating private properties at runtime because the compiler will throw an error at compilation time if we attempt ...

Get Learning TypeScript 2.x - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.