Eslint rules for dealing with Enums peculiarities
As of now Enum have their peculiarities in Typescript; they can behave hmm... How should I put it? Inconsistenly. If you still love Enums then, let me suggest some EsLint rules for writing better Enum Table of Contents Enums peculiarities Helpful ESLint Rules for Enums! Prerequisites EsLint: New to ESLint? It helps you write better JavaScript and TypeScript. https://typescript-eslint.io/ Enums peculiarities I am going to walk you through a few peculiarities I’ve come across while building components using declarative rendering. Let me show you with examples Enums with string or number values Enums behave different when its created with string values versus numbers. With string values enum TransferStatus { Pending = 'pending', Completed = 'completed', Failed = 'failed', } console.log(Object.keys(TransferStatus)) // Output : ["Pending", "Completed", "Failed"] With number values enum TransferStatus { Pending, Completed, Failed, } console.log(Object.keys(TransferStatus)) // Output : ["0", "1", "2", "Pending", "Completed", "Failed"] //

As of now Enum
have their peculiarities in Typescript; they can behave hmm... How should I put it? Inconsistenly. If you still love Enums then, let me suggest some EsLint rules for writing better Enum
Table of Contents
- Enums peculiarities
- Helpful ESLint Rules for Enums!
Prerequisites
- EsLint: New to ESLint? It helps you write better JavaScript and TypeScript. https://typescript-eslint.io/
Enums peculiarities
I am going to walk you through a few peculiarities I’ve come across while building components using declarative rendering.
Let me show you with examples
Enums with string or number values
Enums behave different when its created with string values versus numbers.
With string values
enum TransferStatus {
Pending = 'pending',
Completed = 'completed',
Failed = 'failed',
}
console.log(Object.keys(TransferStatus))
// Output : ["Pending", "Completed", "Failed"]
With number values
enum TransferStatus {
Pending,
Completed,
Failed,
}
console.log(Object.keys(TransferStatus))
// Output : ["0", "1", "2", "Pending", "Completed", "Failed"]
//