Skip to content

Beraliv/with-or-without-enums-bundle-size-impact

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bundle size impact for different solutions

The whole article – With or without enums in TypeScript

Comparison

Approach Enum Const enum Const enum + preserveConstEnums Object + as const Union type
Numeric values 126 44 112 80 44
Heterogeneous values 124 48 117 83 48
String values 116 49 108 83 49

When you need to keep lookup object (enum, const enum + preserveConstEnums and object + as const), the optimal solution is always an object + as const.

When you don't need a lookup object (const enum and union type), both const enum and union type are optimal.

Way to compare

  1. TypeScript Playground to get JS output

  2. size-limit to calculate the size of each JS files

Examples

Enums:

  1. Numeric enum
  2. Heterogeneous enum
  3. String enum

Const enums:

  1. Numeric const enum
  2. Heterogeneous const enum
  3. String const enum

Const enums + enabled preserveConstEnums:

  1. Numeric const enum
  2. Heterogeneous const enum
  3. String const enum

Objects + as const:

  1. Numeric object + as const
  2. Heterogeneous object + as const
  3. String object + as const

Union types:

  1. Numeric union type
  2. Heterogeneous union type
  3. String union type

About

Bundle size impact for different solutions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published