2 ms·
I've done things like this before: https://www.typescriptlang.org/play/?#code/PTAEAkFMBsAdIE4GcB0AoALgT3qAggggIZYCSGkAtgCo6QA81AfKALyjWiQAeFAdgBMkoAEqQiAgPZ9oWA
by c-hendricks 2y ago
I've done things like this before: https://www.typescriptlang.org/play/?#code/PTAEAkFMBsAdIE4GcB0AoALgT3qAggggIZYCSGkAtgCo6QA81AfKALyjWiQAeFAdgBMkoAEqQiAgPZ9oWAsSz0AlnwBmiUAGkWAfi2gAXBy69Ig4fJLK1G7aD2bDoAK58A1n0kB3PmjSrXAGMMJWlQIiQkRAwAUT5nSgA1ImhnBk4efiFRcSkZOUIrVw9vPiYmAAoANxS0o2LPHwAaUBrUyCQjagBKIwiohAxhNrTQJWFOAG80UFmx1VAKgEIRjpQVQNSBDurayG7u0Gm5k9AMAAsEb1A+SC9QGMJJBAqAAwASSdWkAF9QKQ6N0kGDGfE2zm2oE+qx+r26MzmPzQSP8QRCYXGcQSyXajBMWWEYgk0lklkUDVK5V27Xq7kafBa3y6vVaezGEyOCNmCEgGGcCD4rPaqA2Wx2q3hKJAoAAIpBVCpIKAsJJ+Vx4pR0IFpEgQZQsABlDAIFQAcyxlDYoAA2gByIi2lq2gBGjtAtsCtoAuuFhNq+LrMHRQABZQ3Gs0Wq1k8hUWjwejYeCSBb6o0mvjmjVMPwBMHowV54KhPgAVSQZrD6cjGoqRAQpqMVYjmYth2Oc39SEk0EgKGgklNdYbkr8Xb1WAAcglnYgo+xrQAGFoARhaACYfRFQOOg7gw9PKLOEPP8IUyBQaHRE3QU6B9Yfjxac6j8yXQEWC+XK1OZ3Pa-Wjahr+R7-gk7ZcjuOo9n2A5DoBo5oNKADizj1gI-xUJI6DGlgnInP00QWjiaQVLaAhummLZZuByI7kQGCBOc+GdtBvb9oOZE8PAwSQBRiFKAsFSYhqJGQGRnotFRGY0ZQBwsbMXYwRxQ62txkC8fxyJ+NKBrnKq0AYbOoCSG46CfiW36Zs2MkWmRDrwrp+nOIZoBePWfDmWilkVtZ4a2bW5G2vCSFgHpBlGUqpleW+0hWaaB5-ietaLo5YXOa57kCjFxZxb5CUgU+tYAMzwkAA https://www.typescriptlang.org/play/?#code/PTAEAkFMBsAdIE4Gc...
The gist is: define your enum values as a const array. Then you can generate a TypeScript type based on whatever values you have in there. And, since it's an actual array, you can easily write guards / asserts.
So you end up with something easy to extend and also has compile-time and run-time checks.
- hardwaresofton 2y agoThanks for the snippet, it is INTENSE. Will see what I can learn from it — const array I definitely didn’t consider before!