10

我有以下字符串枚举:

export enum RecordStatus {
   ONGOING_ADMINISTRATIVE_ANALYSIS = 'ONGOING_ADMINISTRATIVE_ANALYSIS',

   ONGOING_TECHNICAL_ANALYSIS = 'ONGOING_TECHNICAL_ANALYSIS',

   COMPLETED_APPLICATION = 'COMPLETED_APPLICATION'
}

我有以下功能:

setTimelineStatus(status: RecordStatus) : void {
    console.log("State :" + status); // ON_GOING_TECHNICAL_ANALYSIS

    console.log(RecordStatus.valueOf(status).ordinal()); // doesn't work. Should print 1

    console.log(RecordStatus.valueOf("ON_GOING_TECHNICAL_ANALYSIS").ordinal()); // doesn't work either. Should print 1
}

此函数检索一组枚举作为参数,例如RecordStatus.ON_GOING_TECHNICAL_ANALYSIS. 我想获取索引(在上述情况下应该为 1)。我在这个线程中尝试了解决方案Get index of enum from string? 但我有这个错误:

错误

我不明白为什么我有这个错误。我只想要枚举值的索引。

4

2 回答 2

10

您所指的帖子是 Java 中的枚举。

在打字稿中,枚举在运行时被视为对象,因此您可以迭代枚举的键,直到找到您要查找的那个。

Object.keys(RecordStatus).indexOf('ON_GOING_TECHNICAL_ANALYSIS');
于 2020-07-23T00:22:05.330 回答
1

按名称获取枚举值很简单:

const enumValue = SampleEnum["enumName"];
于 2021-07-25T20:36:45.120 回答