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

How to define enum type in Angular to not violating tslint typedef rule

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

在workflowProgress.ts

export enum WorkflowProgress
{
    cancelled = 0,
    inProgress,
    done
}

在component.ts

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

在template.html

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

并且我们已经有了启用了 typedef 规则的 tslint。但是 tslint 正在唠叨这一行 WorkflowProgress = WorkflowProgress;

[tslint] expected member-variable-declaration: 'WorkflowProgress' to have a typedef (typedef)

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

您可以使用 typeof 运算符来 "query" 枚举类型:

WorkflowProgress: typeof WorkflowProgress = WorkflowProgress