Description
- Your full name: Szymon Sukiennik
- Target audience (beginner/intermediate/advanced/everyone): intermediate
- Estimated duration: 15-25 min
- Keywords: enum-like, dictionary objects, const assertion objects, satisfies, guards, mapped types, reverse mapped types
(Not) enums on steroids
The talk
One-sentence summary
The subjective approach of treating enum-like object dictionaries as an in-memory shared API of application dictionary like state
What's the format — is it a case study, a live coding session, a workshop or something else?
Case-study. Introduction to the problem space, explanation of required TS constructs, going through existing minimal implementation, small living code in playground/IDE to showcase the result.
Tell us more about the talk
- Brief introduction to enum shenanigans in TS and how they compile and behave (to later forget about them as they won't be used) vs const assertions.
- Brief discussion of problem space for managing dictionary-like state in the API, persistent layer, exposing it to the FE, pitfalls, and where I come from with it
- Going through TS constructs important for understanding: conditional types, mapped types, reversed mapped types, const assertion objects, satisfies operator. No deep dives, just enough knowledge
- Introducing the approach of creating simple or composite dictionary objects and how to work with them
- Limitations & possibilities
You
A few words about yourself
My name is Szymon Sukiennik and I am a software developer with various interests in different areas of the software stack, recently mainly focused on the backend, distributed systems and observability.
How can we find you on social media?
@ssukienn on Twitter or by email
Would you be willing to have a Q/A session after the talk?
Sure
Do you mind if we record the event?
Nope
Is there anything we can help you with?
Review slides, add feedback
Hey! I checked that there is already some similar talk proposal (#88). Not sure how significant the overlap would be here. Though, I use mapped/remapped types only as a tool to achieve typesafe remappings. Otherwise, my talk would focus on a subjective approach of treating enums like data in the project :) I am happy to propose something else if you think it will be too much of a conflict. Cheers!