Как использовать перечисления в угловых 5 - PullRequest
0 голосов
/ 08 мая 2018

Я не могу найти прямой ответ на это, сказать, у меня есть этот enum

public enum DisplayType { Something, Another, More };

как я могу использовать это в моем угловом файле TS?

Я пытался сделать это ..

import { ... } from '';
import { DisplayType } from '...' 
...

enum DisplayType { Something, Another, More }

@Component({
...

export class ...

constructor(){}

ngOnIt() {
   someFunction(DisplayType.Something).subscribe(() => {});
}

так выглядит enum в сервисе

export enum DisplayType {
 _0 = 0, 
 _1 = 1, 
 _2 = 2, 
}

но это, похоже, не работает. Я получаю сообщение об ошибке

[ts] Argument type of 'DisplayType.Something' is not assignable to paramter of type 'DisplayType'.
enum DisplayType

Я не уверен, что я делаю неправильно?

EDIT

Я пытался сделать ..

const enum DisplayType { Something, Another, More }

но я все еще получаю ту же ошибку, я также пытался сделать это

enum DisplayType { Something, Another, More }

export class...
DisplayType: any = DisplayType;

ngOnIt() {
   someFunction(this.DisplayType.Something).subscribe(() => {});
}

, который не выдает ошибку, но когда я наведу на него курсор, я получаю (property) DashboardAlertComponent.DisplayType: any, но не должен ли он сказать DisplayType.Something = 1 или что-то еще?

Буду признателен за любую помощь !!

1 Ответ

0 голосов
/ 08 мая 2018

Ваш сервис определяет DisplayType, но вы также создаете свой DisplayType. То, что эти два типа имеют одинаковое имя, не делает их одинаковыми.

Импортируйте DisplayType из службы и используйте его.

import { DisplayType } from 'service.ts';
someFunction(DisplayType._0);

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

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