refactor(skill-editor): remove type assertions by using spread args pattern

Replace explicit parameter destructuring with spread args pattern to
eliminate `as unknown as` type assertions when composing sub-slices.
This aligns with the pattern used in the main workflow store.
This commit is contained in:
yyh
2026-01-18 13:11:06 +08:00
parent c0a76220dd
commit 3b27d9e819

View File

@ -20,23 +20,15 @@ export type SkillEditorSliceShape
resetSkillEditor: () => void
}
export const createSkillEditorSlice: StateCreator<SkillEditorSliceShape> = (set, get, store) => {
// Type assertion via unknown to allow composition with other slices in a larger store
// This is safe because all slice creators only use set/get for their own properties
const tabArgs = [set, get, store] as unknown as Parameters<StateCreator<TabSliceShape>>
const fileTreeArgs = [set, get, store] as unknown as Parameters<StateCreator<FileTreeSliceShape>>
const dirtyArgs = [set, get, store] as unknown as Parameters<StateCreator<DirtySliceShape>>
const metadataArgs = [set, get, store] as unknown as Parameters<StateCreator<MetadataSliceShape>>
const menuArgs = [set, get, store] as unknown as Parameters<StateCreator<FileOperationsMenuSliceShape>>
return {
...createTabSlice(...tabArgs),
...createFileTreeSlice(...fileTreeArgs),
...createDirtySlice(...dirtyArgs),
...createMetadataSlice(...metadataArgs),
...createFileOperationsMenuSlice(...menuArgs),
export const createSkillEditorSlice: StateCreator<SkillEditorSliceShape> = (...args) => ({
...createTabSlice(...args),
...createFileTreeSlice(...args),
...createDirtySlice(...args),
...createMetadataSlice(...args),
...createFileOperationsMenuSlice(...args),
resetSkillEditor: () => {
const [set] = args
set({
openTabIds: [],
activeTabId: null,
@ -48,5 +40,4 @@ export const createSkillEditorSlice: StateCreator<SkillEditorSliceShape> = (set,
contextMenu: null,
})
},
}
}
})