C# 使用 TypeGen 生成 TypeScript class 并设置 [immerable] = true

C# generate TypeScript class with TypeGen and set [immerable] = true

我们正在使用 TypeGen 从我们的 C# 类.

生成 TypeScript 类

它是这样工作的:

[ExportTsClass]
public class MyClass
{
    public int MyProperty { get; set; }
    public string MyField { get; set; }
    public string MyProperty2 { get; set; }
}

生成:

export class MyClass {
    myField: string;
    myProperty: number;
    myProperty2: string;
}

https://typegen.readthedocs.io/en/latest/whatisgenerated.html

这非常有效,但我们现在已经开始使用 ImmerReact Redux。要使 类 正常工作,需要像下面的任何示例一样设置 [immerable] = true

import {immerable} from "immer"

class Foo {
    [immerable] = true // Option 1

    constructor() {
        this[immerable] = true // Option 2
    }
}

Foo[immerable] = true // Option 3

https://immerjs.github.io/immer/docs/complex-objects

是否可以通过 TypeGen 生成?

import {immerable} from "immer"

export class MyClass {
    [immerable] = true
    myField: string;
    myProperty: number;
    myProperty2: string;
}

我已经查看了所有 TypeGen attributes,但没有找到任何似乎有效的方法。 TsTypeAttribute 可以走很长的路,但不知道如何解决 immerable.

周围的括号

https://typegen.readthedocs.io/en/latest/attributes.html#tstypeattribute

这样解决的:

import MyClass from "../MyClass";
import { immerable } from "immer";
export class ImmerMyClass extends MyClass {
    [immerable] = true;
}