abreneliere abreneliere - 3 months ago 18
TypeScript Question

Typescript : how to loop through enum values for display in radio buttons?

What is the proper way to loop through litterals of an enum in Typescript ?
(Currently using typescrip 1.8.1)

I've got the following enum :

export enum MotifIntervention {
Intrusion,
Identification,
AbsenceTest,
Autre
}

export class InterventionDetails implements OnInit
{
constructor( private interService: InterventionService )
{
let i:number = 0;
for (let motif in MotifIntervention) {
console.log( motif );
}
}


The result displayed is a list

0
1
2
3
Intrusion,
Identification,
AbsenceTest,
Autre


I do want only 4 iterations in the loop as there are only 4 elements in the enum, I don't want to have 0 1 2 and 3 that seem to be index numbers of the enum.

Answer

Two options:

for (let item in MotifIntervention) {
    if (isNaN(Number(item))) {
        console.log(item);
    }
}

Or

Object.keys(MotifIntervention).filter(key => !isNaN(Number(MotifIntervention[key])));

(code in playground)