Skip to content

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

Closed

Description

@robpalme

@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 nodejs/node#54283 then Node needs to pick which behavior it wants.

Activity

  1. marco-ippolito commented on Aug 11, 2024

    @marco-ippolito
    Member

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

  2. robpalme commented on Aug 14, 2024

    @robpalme
    Author

    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.

  3. marco-ippolito commented on Aug 14, 2024

    @marco-ippolito
    Member

    amaro v0.1.6 ship the updated version. Updating in core, and adding the flag in a followup PR nodejs/node#54374

  4. robpalme commented on Aug 23, 2024

    @robpalme
    Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions