Comment Comment by cuddlecake You can also write the array first, without using enum:const tokens = ['parenOpen', 'bang', 'plus', 'minus'] as const;type Token = typeof tokens[number];type TokenTable<T> = Record<Token, T> // alias for { [key in Token]: T }const isToken = (t: string): t is Token => tokens.includes(t);const patterns: TokenTable<RegExp> = { bang: /\+/, // rest } parent cuddlecake 4 years ago
const tokens = ['parenOpen', 'bang', 'plus', 'minus'] as const;
type Token = typeof tokens[number];
type TokenTable<T> = Record<Token, T> // alias for { [key in Token]: T }
const isToken = (t: string): t is Token => tokens.includes(t);
const patterns: TokenTable<RegExp> = { bang: /\+/, // rest }