如何在打字稿中获取枚举值

时间:2019-06-11 05:05:04

标签: angular typescript angular7

我在从枚举中获取值时遇到问题。这是我的代码段:

export const enum ComplianceType {
  ENGINEER_ASSESMENT = 'ENGINEER_ASSESMENT',
  CONSTRUCTION_COMPLIANCE = 'CONSTRUCTION_COMPLIANCE',
  ARCHITECTURE_ASSIGNMENT = 'ARCHITECTURE_ASSIGNMENT',
  BLUEPRINT_APPROVAL = 'BLUEPRINT_APPROVAL',
  THERMAL_COMPLIANCE = 'THERMAL_COMPLIANCE',
  ELECTRICITY_COMPLIANCE = 'ELECTRICITY_COMPLIANCE',
  TELECOMUNICATION_COMPLIANCE = 'TELECOMUNICATION_COMPLIANCE',
  WATER_COMPLIANCE = 'WATER_COMPLIANCE',
  OTHER_1 = 'OTHER_1',
  OTHER_2 = 'OTHER_2',
}

在我的.ts文件中:

import { ICompliance, ComplianceType } from 'app/shared/model/compliance.model';

我尝试了这个:

complianceTypeList: ComplianceType;

我不知道如何从打字稿中的枚举中获取值。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

您的语法错误。

您不应分配它,或尝试将Enums分配为变量。只需export enum ComplianceType即可。

export enum ComplianceType {
  ENGINEER_ASSESMENT = 'ENGINEER_ASSESMENT',
  CONSTRUCTION_COMPLIANCE = 'CONSTRUCTION_COMPLIANCE',
  ARCHITECTURE_ASSIGNMENT = 'ARCHITECTURE_ASSIGNMENT',
  BLUEPRINT_APPROVAL = 'BLUEPRINT_APPROVAL',
  THERMAL_COMPLIANCE = 'THERMAL_COMPLIANCE',
  ELECTRICITY_COMPLIANCE = 'ELECTRICITY_COMPLIANCE',
  TELECOMUNICATION_COMPLIANCE = 'TELECOMUNICATION_COMPLIANCE',
  WATER_COMPLIANCE = 'WATER_COMPLIANCE',
  OTHER_1 = 'OTHER_1',
  OTHER_2 = 'OTHER_2',
}

从那里,您可以简单地将Enums导入需要它的类或组件上。

import { ComplianceType } from 'app/shared/model/compliance.model';

here上运行良好。

答案 1 :(得分:0)

您可以通过将Enum值视为数组来访问它,并使用键来访问其值:

ComplianceType["ARCHITECTURE_ASSIGNMENT"]

应该为您提供价值。

答案 2 :(得分:0)

如果要访问枚举的键,可以使用With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "&P of " & focunt ,如果要访问其值,可以使用Object.keys(EnumType);。不过,您似乎在这里尝试将整个Enum分配给单个Enum属性类型

您可以这样做:

Object.values(EnumType);

但是,基本上,您不能将类型分配给该类型的变量。那没有意义。