Finite State Machines für komplexe UI-Logik in TypeScript

Boolean-Flags sind eine Steuer. Jeder neue Edge-Case fügt ein weiteres isLoading, hasError, isRetrying, wasSubmitted hinzu — und schon pflegst du ein Dutzend Booleans, die sich zu Zuständen kombinieren können, die nie existieren sollten. Ein Formular, das gleichzeitig isLoading und hasError wegen eines vorherigen Versuchs ist. Ein Button, der aus drei verschiedenen Gründen disabled ist, von denen keiner explizit ist. Finite State Machines (FSMs) eliminieren diese ganze Klasse von Bugs auf Typ-Ebene.

Hier ist eine typische asynchrone Formularkomponente. Sie ist vertraut, weil wir sie alle schon geschrieben haben.