Open volkanceylan opened 1 month ago
Note that this only occurs if the property has no assigned value. If private m1: any = null
is used, the initializer is correctly generated after the super() call.
Another thing to consider after looking at https://github.com/evanw/esbuild/issues/3913 is, if this behavior should apply only for properties with decorators or even when only the class has a decorator as in my case. Otherwise this will be a breaking change for those using useDefineForClassFields: false. Does TypeScript behave this way, e.g. also for class decorators?
Seems like TypeScript does not do this for classes with only class decorators:
But only for properties with decorators:
Should ESBuild do the same?
I think this is an issue introduced in 0.24 as 0.23.1 does not have this problem. Probably related to https://github.com/evanw/esbuild/issues/3913
The generated constructor for the derived B class with a private field includes a field initializer before the super call which results in the following error in browser console if you copy paste the generated code: