如何在 Angular 中定义枚举类型以不违反 tslint typedef 规则

Posted

技术标签:

【中文标题】如何在 Angular 中定义枚举类型以不违反 tslint typedef 规则【英文标题】:How to define enum type in Angular to not violating tslint typedef rule 【发布时间】:2018-11-21 22:28:18 【问题描述】:

为了能够在模板中使用枚举,我们在 ts 文件中编写了以下代码。

在 workflowProgress.ts 中

export enum WorkflowProgress

    cancelled = 0,
    inProgress,
    done

在component.ts中

export class Component 
   WorkflowProgress = WorkflowProgress;
   x : WorkflowProgress = WorkflowProgress.done;

在模板.html

<div *ngIf="x === WorkflowProgress.done">

我们已经启用了带有 typedef 规则的 tslint。但是 tslint 对这条线唠叨不休WorkflowProgress = WorkflowProgress;

[tslint] 预期成员变量声明:'WorkflowProgress' 有一个 typedef (typedef)

我可以通过添加 // tslint:disable-next-line:typedef 来禁用规则,但我想知道是否有更好的方法来做到这一点?

【问题讨论】:

【参考方案1】:

您可以使用typeof 运算符来“查询”枚举的类型:

WorkflowProgress: typeof WorkflowProgress = WorkflowProgress

【讨论】:

以上是关于如何在 Angular 中定义枚举类型以不违反 tslint typedef 规则的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular html 中使用枚举数据类型? [复制]

如何在 Angular 2 中包含打字稿自定义类型定义?

Angular 2:如何从枚举创建单选按钮并添加双向绑定?

如何在 Angular 5 视图中访问枚举值

泛型和枚举

.NET 告诉我 TypeLoadException:违反类型参数“T”的约束,而我的代码显然没有违反它