我似乎无法找到一个直截了当的答案,说我有这个枚举
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)