如何在 Typescript 中使用关联值实现 Swift 风格的枚举?

mar*_*ves 6 javascript enums typescript swift

在 Typescript 中使用关联值实现 Swift 风格的枚举的最直接方法是什么?是否可以?

在具有关联值的枚举中,我正在寻找indirect enum可以与 AST 一起使用的关联值的特定情况- 请参见下面的示例:

indirect enum Node {
    case op(Node, Node)
    case value(Double)
}
Run Code Online (Sandbox Code Playgroud)

我找到了一个相关问题的答案,但它是关于 Javascript 支持而不是 Typescript 支持的。我不认为这是那个问题的重复;可能有一些解决方案适用于 TypeScript,但不适用于 JavaScript。