Rumah > Soal Jawab > teks badan
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 }
P粉8648728122023-09-17 00:42:18
Anda boleh menggunakan jenis pemetaan untuk ini dan 排除
:
type StateMachineConfig<State extends string, TransitionState extends State> = { [state in State]: Exclude<TransitionState, state>[]; };