@ue-too/being / index / HierarchicalStateMachine
類別: HierarchicalStateMachine<EventPayloadMapping, Context, States, EventOutputMapping>
定義於: hierarchical.ts:306
Extended state machine that supports hierarchical state paths.
備註
This class extends TemplateStateMachine to track and expose hierarchical state paths when composite states are used.
Extends
TemplateStateMachine<EventPayloadMapping,Context,States,EventOutputMapping>
型別參數
EventPayloadMapping
EventPayloadMapping = any
Event payload mapping
Context
Context extends BaseContext = BaseContext
Context type
States
States extends string = string
State names
EventOutputMapping
EventOutputMapping extends Partial<Record<keyof EventPayloadMapping, unknown>> = DefaultOutputMapping<EventPayloadMapping>
Event output mapping
建構函式
建構函式
new HierarchicalStateMachine<
EventPayloadMapping,Context,States,EventOutputMapping>(states,initialState,context,autoStart):HierarchicalStateMachine<EventPayloadMapping,Context,States,EventOutputMapping>
定義於: interface.ts:592
參數
states
Record<States, State<EventPayloadMapping, Context, States, EventOutputMapping>>
initialState
States
context
Context
autoStart
boolean = true
回傳
HierarchicalStateMachine<EventPayloadMapping, Context, States, EventOutputMapping>
繼承自
TemplateStateMachine.constructor
屬性
_context
protected_context:Context
定義於: interface.ts:579
繼承自
_currentState
protected_currentState:"INITIAL"|"TERMINAL"|States
定義於: interface.ts:574
繼承自
TemplateStateMachine._currentState
_happensCallbacks
protected_happensCallbacks: (args,context) =>void[]
定義於: interface.ts:582
參數
args
EventArgs<EventPayloadMapping, string> | EventArgs<EventPayloadMapping, keyof EventPayloadMapping>
context
Context
回傳
void
繼承自
TemplateStateMachine._happensCallbacks
_initialState
protected_initialState:States
定義於: interface.ts:590
繼承自
TemplateStateMachine._initialState
_stateChangeCallbacks
protected_stateChangeCallbacks:StateChangeCallback<States>[]
定義於: interface.ts:581
繼承自
TemplateStateMachine._stateChangeCallbacks
_states
protected_states:Record<States,State<EventPayloadMapping,Context,States,EventOutputMapping>>
定義於: interface.ts:575
繼承自
_statesArray
protected_statesArray:States[]
定義於: interface.ts:580
繼承自
TemplateStateMachine._statesArray
_timeouts
protected_timeouts:number|undefined=undefined
定義於: interface.ts:589
繼承自
TemplateStateMachine._timeouts
存取器
currentState
Getter 簽章
get currentState():
"INITIAL"|"TERMINAL"|States
定義於: interface.ts:723
回傳
"INITIAL" | "TERMINAL" | States
繼承自
TemplateStateMachine.currentState
possibleStates
Getter 簽章
get possibleStates():
States[]
定義於: interface.ts:731
回傳
States[]
繼承自
TemplateStateMachine.possibleStates
states
Getter 簽章
get states():
Record<States,State<EventPayloadMapping,Context,States,EventOutputMapping>>
定義於: interface.ts:735
回傳
Record<States, State<EventPayloadMapping, Context, States, EventOutputMapping>>
繼承自
方法
getActiveStatePath()
getActiveStatePath():
string[]
定義於: hierarchical.ts:343
Gets all active states in the hierarchy. Returns an array where the first element is the top-level state, and subsequent elements are nested child states.
回傳
string[]
getCurrentStatePath()
getCurrentStatePath():
string
定義於: hierarchical.ts:324
Gets the current hierarchical state path. Returns a simple state name for non-composite states, or a dot-notation path for composite states (e.g., "PARENT.CHILD").
回傳
string
happens()
呼叫簽章
happens<
K>(...args):EventResult<States,Kextends keyofEventOutputMapping?EventOutputMapping[K<K>] :void>
定義於: interface.ts:653
型別參數
K
K extends string | number | symbol
參數
args
...EventArgs<EventPayloadMapping, K>
回傳
EventResult<States, K extends keyof EventOutputMapping ? EventOutputMapping[K<K>] : void>
繼承自
呼叫簽章
happens<
K>(...args):EventResult<States,unknown>
定義於: interface.ts:659
型別參數
K
K extends string
參數
args
...EventArgs<EventPayloadMapping, K>
回傳
EventResult<States, unknown>
繼承自
isInStatePath()
isInStatePath(
path):boolean
定義於: hierarchical.ts:368
Checks if the state machine is currently in a specific hierarchical path. Supports both simple state names and dot-notation paths.
參數
path
string
State path to check (e.g., "PARENT" or "PARENT.CHILD")
回傳
boolean
onHappens()
onHappens(
callback):void
定義於: interface.ts:711
參數
callback
(args, context) => void
回傳
void
繼承自
TemplateStateMachine.onHappens
onStateChange()
onStateChange(
callback):void
定義於: interface.ts:707
參數
callback
StateChangeCallback<States>
回傳
void
繼承自
TemplateStateMachine.onStateChange
reset()
reset():
void
定義於: interface.ts:613
回傳
void
繼承自
setContext()
setContext(
context):void
定義於: interface.ts:727
參數
context
Context
回傳
void
繼承自
TemplateStateMachine.setContext
start()
start():
void
定義於: interface.ts:619
回傳
void
繼承自
switchTo()
switchTo(
state):void
定義於: interface.ts:648
參數
state
"INITIAL" | "TERMINAL" | States
回傳
void
繼承自
wrapup()
wrapup():
void
定義於: interface.ts:632
回傳
void