Pesquisa de site

typescript - Como definir tipo enum no Angular sem violar a regra typedef do tslint


Para poder usar enumerações em template, escrevemos os códigos abaixo no arquivo ts.

em workflowProgress.ts

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

em component.ts

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

em template.html

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

e já temos o tslint com a regra typedef habilitada. mas o tslint está reclamando sobre esta linha WorkflowProgress=WorkflowProgress;

[tslint] esperado member-variable-declaration: 'WorkflowProgress' deveria ter um tipo definido (typedef)

Posso desativar a regra adicionando // tslint:disable-next-line:typedef, mas estava me perguntando se existe uma maneira melhor de fazer isso?

Resposta #1

Você pode usar o operador typeof para "consultar" o tipo de enumeração:

WorkflowProgress: typeof WorkflowProgress = WorkflowProgress

Artigos relacionados