Transitions
Transitions
A type which is used to define valid states and transitions for a state machine based on FSM.
Example
type LightColor = 'Green' | 'Amber' | 'Red';
const trafficLightTransitions: Transitions<LightColor> = {
  Green: {
    to: ['Amber'],
  },
  Amber: {
    to: ['Red'],
  },
  Red: {
    to: ['Green'],
  },
};
The mergeStrategy property defines how to handle the merging of states when one set of
transitions is being merged with another (as in the case of defining a OrderProcess)
Signature
type Transitions<State extends string, Target extends string = State> = {
    [S in State]: {
        to: Readonly<Target[]>;
        mergeStrategy?: 'merge' | 'replace';
    };
}