目前,我们的代码存在一种情况,即我们在Java层中使用枚举,该枚举通过以下构造函数存储id和“显示值”:
public enum Status implements EnumIdentity {
Active(1, "Active"),
AwaitingReview(2, "Awaiting Review"),
Closed(3, "Closed"),
Complete(4, "Complete"),
Draft(5, "Draft"),
InProcess(6, "In Process"),
InReview(7, "In Review"),
NotStarted(8, "Not Started"),
PendingResolution(9, "Pending Resolution"),
Rejected(10, "Rejected");
private int id;
private String displayValue;
PlanStatus(final int id, String displayValue) {
this.id = id;
this.displayValue = displayValue;
}
/** {@inheritDoc} */
@Override
public int id() {
return id;
}
public String getDisplayValue() {
return displayValue;
}
}
我们希望打字稿中的某些内容能够与之匹配,以便以有意义的方式显示状态以执行逻辑并在前端向用户显示值。这可能吗?有没有更好的方法来解决这个问题?我们希望避免使用诸如status.id()=
1或status.name()=’Active’这样的逻辑,从而推动枚举。
谢谢
Typescript不支持诸如Java中的扩展枚举。您可以使用一个类实现类似的效果:
interface EnumIdentity { }
class Status implements EnumIdentity {
private static AllValues: { [name: string] : Status } = {};
static readonly Active = new Status(1, "Active");
static readonly AwaitingReview = new Status(2, "Awaiting Review");
static readonly Closed = new Status(3, "Closed");
static readonly Complete = new Status(4, "Complete");
static readonly Draft = new Status(5, "Draft");
static readonly InProcess = new Status(6, "In Process");
static readonly InReview = new Status(7, "In Review");
static readonly NotStarted = new Status(8, "Not Started");
static readonly PendingResolution = new Status(9, "Pending Resolution");
static readonly Rejected = new Status(10, "Rejected");
private constructor(public readonly id: number, public readonly displayValue: string) {
Status.AllValues[displayValue] = this;
}
public static parseEnum(data: string) : Status{
return Status.AllValues[data];
}
}
我不确定我是否过度工程化了,但我正在考虑创建一个枚举,其中包含一个枚举列表作为它的值,从中我可以得到它的值。 我无法确定枚举的类型,以便正确地将值数组筛选到正确的枚举。例如,我可以用轻松地获得US枚举。我遇到的困难是从该数组中获得正确的值。我尝试比较名称,
我找到了这个关于如何将字符串转换为打字稿枚举的好答案。在此基础上,我编写了这个函数 但是现在当我尝试使它通用时, 我在return语句中得到错误:< code >“T”只引用一个类型,但在这里被用作值。 我想使这个泛型,因为我有许多枚举需要根据它们的字符串值生成,并且我不想为每个枚举使用单独的方法。
我是打字稿的新手。现在我正在学习课程并得到一些问题: 当我们扩展父类时,我们必须使用super()。但是,如果我想省略父构造函数,我们可以这样做或覆盖它吗? [日志]:"不要显示" [日志]:“我的名字是派生的”
我有一个typescript中的枚举,它有20个字段。我有一个UI应用程序,用户可以将信息放在一些自由文本中(例如,让我们说用户喜欢的颜色)。我的要求是获取这些颜色信息并致电中层服务。midtier服务将Color定义为Enum,与UI枚举定义保持同步。我需要将用户输入文本转换为枚举(在前端),因为在构建过程中会引发编译问题。我没有找到执行转换的方法(例如,从用户输入字符串到特定枚举元素)。任何指
我正在为即将到来的考试做一些修订,我对对象构造函数中枚举的使用有点困惑。
我在某处看到了枚举的以下解决方案 这证明了我想做的,除了ArrayBuffer中隐藏了一个var......这有点令人讨厌。 我真正想要的是val lookupTable=Map(),当一个请求进来时,我可以查找“星期一”并将其转换为我的枚举星期一并在整个软件中使用枚举。这通常是如何做到的。我看到了密封的特征,但没有看到一种方法来自动确保当有人添加扩展它的类时,它会自动添加到查找表中。有没有办法使