In TypeScript, there is no exlicit concept like inner classes.
So what you cannot do in TypeScript is as follows:
class Foo { export class InnerFoo { } } new Foo.InnerFoo();
You can achieve something similar by merging a class with a module containing the inner class.
class Foo { } module Foo { export class InnerFoo { doIt(){} } } new Foo.InnerFoo();
The merging happens implicitely by using the same name for the class and the module.
Of course you can use the inner class in the outer class:
class Foo { doSomethingWithInnerFoo() { new Foo.InnerFoo().doIt(); } } module Foo { export class InnerFoo { doIt(){} } } new Foo().doSomethingWithInnerFoo();
The only downside here is that the inner class must be exported, so it is always visible to the outside – there are no private inner classes.


Pingback: Declaration Merging with TypeScript | techscouting through the java newstechscouting through the java news
I am actually grateful to the holder of this
web site who has shared this enormous post at at this time.