inline strings used for app states instead of reusable constants/enums (”Idle”, “Loading”, "Act::Fetch" , etc).
strongly typed approach of the application and the usage of dicriminated union makes using constants unnecessary.
I will discuss it with three examples what I mean.
- We can't have silly typos and autocomplete of IDEs will predict them correctly too. So for example if we type "Load" the IDE will autocomplete as "Loading". And when we type something that is not part of the union the compiler will alert us in that spot.
- If a naming change occurs we are also forced to handle the change. So, it means we don't have the possibility to skip renaming where they are used.