Skip to content

The generation of enum did not consider compile-time constant variables #394

@chirsz-ever

Description

@chirsz-ever

Example code:

const foo = 'aThisIs'

enum E {
  A = foo,
  B = 'bThisIs'
}

TypeScript 5.9 generates:

"use strict";
const foo = 'aThisIs';
var E;
(function (E) {
    E["A"] = "aThisIs";
    E["B"] = "bThisIs";
})(E || (E = {}));

amaro with amaro.transformSync(src, { mode: "transform" }) generates:

const foo = 'aThisIs';
var E = function(E) {
    E[E["A"] = foo] = "A";
    E["B"] = "bThisIs";
    return E;
}(E || {});

Related esbuild issue: evanw/esbuild#4387

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions