There appears to be some kind of internal "class" type that is impossible to represent generically:
You can see a live version here: http://goo.gl/exBzY6
functionIdentifiableSubclass<TextendsWhat?>(SuperClass: T){returnclassextendsT{public_id=null;}}classThing{publichello=null;/* impl */}constIdentifiableThing=IdentifiableSubclass(Thing);classChildThingextendsIdentifiableThing{}letchild=newChildThing();child.hello;// TS does not understand that this existschild._id;// TS understands that this exists
There appears to be some kind of internal "class" type that is impossible to represent generically:
You can see a live version here: http://goo.gl/exBzY6