jburzynski / TypeGen

Single-class-per-file C# to TypeScript generator
MIT License
197 stars 56 forks source link

Draft: Try to use object constructors for complex property values where possible #162

Open tterrag1098 opened 1 year ago

tterrag1098 commented 1 year ago

Something I ran into while trying to convert a project to use this was that complex valued types would often be given long JSON values as their defaults, when what I really expected was simply new Foo(). Additionally some complex objects, such as those with fields only in the parent's parent class, would generate invalid JSON.

This is a test of a new way to try to detect if a complex property's default value is equivalent to the value returned by its default constructor. If so, it will simply use new TheType() in the output typescript.

This is a draft as I'm not sure if you even want this feature, plus I'm sure it's missing some edge cases, such as what happens when the property type is not an exported class. Let me know your thoughts!