我们使用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
这非常有效,但我们现在已经开始将Immer
与React 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;
}