Skip to content

Instantly share code, notes, and snippets.

@MikelArnaiz
Created July 23, 2021 08:39
Show Gist options
  • Save MikelArnaiz/8ccd2bea9f40ea2a8c93c6a2e7d5ac01 to your computer and use it in GitHub Desktop.
Save MikelArnaiz/8ccd2bea9f40ea2a8c93c6a2e7d5ac01 to your computer and use it in GitHub Desktop.
Union types vs enums vs const assertions
const ALIGN_LEFT = 'left'
const ALIGN_RIGHT = 'right'
type AlignUnion = typeof ALIGN_LEFT | typeof ALIGN_RIGHT
const foo: AlignUnion = 'bar'
const foo1: AlignUnion = 'left'
const foo2: AlignUnion = ALIGN_LEFT
enum AlignEnum {
Left = 'left',
Right = 'right'
}
const bar: AlignEnum = 'bar'
const bar1: 'left' // Its unique
const bar2: AlignEnum = AlignEnum.Left
const AlignConst = {
Left: 'left',
Right: 'right'
} as const
type AlignConst = typeof AlignConst[keyof typeof AlignConst];
const baz: AlignConst = 'baz'
const baz1: AlignConst = 'left'
const baz2: AlignConst = AlignConst.Left
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment