gpt4 book ai didi

javascript - 如何在 Angular 5 中使用枚举

转载 作者:行者123 更新时间:2023-12-01 02:04:28 24 4
gpt4 key购买 nike

我似乎找不到直接的答案,说我有这个枚举

public enum DisplayType { Something, Another, More };

如何在我的 Angular 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)

关于javascript - 如何在 Angular 5 中使用枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50224580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com