typescript - Pinia förlorade sina typer när man använder fabriksmönster


För behovet av mitt projekt behöver jag skapa en storeFactory för att modulera skapandet av en pinia-butik.

Jag tog specifikt bort parametrarna här och förenklade kodexemplet.

När jag är i Fil A hämtas typen av storeFactory automatiskt korrekt

När jag är på fil B förloras typen och endast detta kan härledas

StoreDefinition<"store_id", {} | _UnwrapAll<Pick<any, string | number>>, {} | Pick<...>, {} | Pick<...>

Fil A

export function storeFactory() {
  const baseEntityComponents = {}
  const extensionComponents = {}

  return defineStore(`store_id`, () => ({ // type OK
    ...baseEntityComponents,
    ...extensionComponents,
  }));
}

Fil B

import {storeFactory} './fileA.ts'
export const useStore = storeFactory(); // type lost

Fråga

Hur kan vi bevara den automatiska typen medan vi kapslar in define store i en fabrikmetod? Om automatisk typinföring inte är möjlig, finns det ett sätt att manuellt definiera typen. Jag skapade ett gränssnitt med alla metoder från butiken men det är uppenbarligen inte samma typ som en instans av en pinia-butik som innehåller dessa metoder.