我似乎无法找到一个直截了当的答案,说我有这个枚举

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(() => {});
}


这就是服务中枚举的样子

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


我不确定我在做什么错?

编辑

我已经试过了

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或类似的东西吗?

任何帮助,将不胜感激!!

最佳答案

您的服务定义了DisplayType,但是您还创建了自己的DisplayType。仅仅因为这两种类型具有相同的名称,就不会使它们相同。

从服务导入DisplayType并使用它。

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


如果需要使用自己的枚举,则可以将其传递为任意值,但请确保枚举值正确对齐

someFunction(MyDisplayType.Something as any)

09-19 00:09