Как получить значения enum в машинописи - PullRequest
0 голосов
/ 11 июня 2019

У меня проблема с получением значений из enum. Вот фрагмент моего кода:

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;

Я не понимаю, как получить значения из enum в машинописи. Любой совет?

Ответы [ 3 ]

1 голос
/ 11 июня 2019

Ваш синтаксис неправильный.

Вы не должны назначать его или пытаться назначить 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';

Работает отличноболее здесь .

0 голосов
/ 11 июня 2019

Вы можете использовать Object.keys(EnumType);, если хотите получить доступ к ключам своих перечислений, или Object.values(EnumType);, если хотите получить доступ к его значениям.Тем не менее, похоже, что вы пытаетесь присвоить весь Enum одному типу свойства Enum здесь

Вы можете сделать это:

complianceType: ComplianceType;

complianceType = ComplianceType.ENGINEER_ASSESMENT;

Но вы не можете назначить тип дляпеременная этого типа, в основном.Это не имеет смысла.

0 голосов
/ 11 июня 2019

Вы можете получить доступ к значению Enum, обработав его как массив и получив доступ к его значению с помощью ключа:

ComplianceType["ARCHITECTURE_ASSIGNMENT"]

Должно дать вам значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...