Saya sedang melaksanakan mesin keadaan mudah. Konfigurasi adalah seperti berikut:
type StateMachineConfig<State extends string, TransitionState extends State> = Record<State, TransitionState[]>;
Setiap kekunci hendaklah berupa penghitungan rentetan.
Setiap nilai hendaklah berupa tatasusunan penghitungan rentetan yang sama, tetapi Negeri yang diberikan sebagai kunci tidak boleh dimasukkan dalam tatasusunan
Dengan itu mengambil kira status berikut:
enum MyStates { State1 = "State 1", State2 = "State 2", State3 = "State 3" }
...perkara berikut sepatutnya berfungsi:
const config: StateMachineConfig<MyStates, MyStates> = { [MyStates.State1]: [MyStates.State2], [MyStates.State2]: [MyStates.State3], [MyStates.State3]: [MyStates.State1, MyStates.State2] }
...tetapi bukan yang berikut:
const config: StateMachineConfig<MyStates, MyStates> = { [MyStates.State1]: [MyStates.State2], [MyStates.State2]: [MyStates.State3], [MyStates.State3]: [MyStates.State2, MyStates.State3] // error: value in array is same as key }
Anda boleh menggunakan jenis pemetaan untuk ini dan
排除
:(Demo Dalam Talian)