nodejs / typescript

TypeScript support in Node.js core
MIT License
89 stars 0 forks source link

Parameter Properties transform: SWC vs TS (initializer relocation) #3

Closed robpalme closed 3 months ago

robpalme commented 3 months ago

@marco-ippolito requested I raise this issue here due to SWC Parameter Properties differing from TS Parameter Properties.

With modern ES2022/ESNext emit, where by default it is implied that useDefineForClassFields: true, TS does not relocate class field initializers when Parameter Properties are used. But SWC does. So if support for the Parameter Properties transform is added in https://github.com/nodejs/node/pull/54283 then Node needs to pick which behavior it wants.

marco-ippolito commented 3 months ago

I'm also wondering if changing the behavior in the future will result in a breaking change in Node.js @nodejs/typescript?

robpalme commented 3 months ago

Thanks to @magic-akari, SWC now provides an option (jsc.transform.native_class_properties) to match TS behavior in SWC v1.7.11 which was released one hour ago.

marco-ippolito commented 3 months ago

amaro v0.1.6 ship the updated version. Updating in core, and adding the flag in a followup PR https://github.com/nodejs/node/pull/54374

robpalme commented 3 months ago

This is now fixed in Node core so I am happy to close it.