TypeScript - Factoryパターンを使用するとPiniaの型が失われる
私のプロジェクトの必要のために、Piniaストアの作成をモジュール化するためのstoreFactoryを作成する必要があります。
ここでは特にパラメータを削除し、コード例を簡略化しました。
ファイルAにいるとき、storeFactoryの型は自動的に正しく取得されます
私がファイルBのとき、型は失われ、これだけが推測できる
StoreDefinition<"store_id", {} | _UnwrapAll<Pick<any, string | number>>, {} | Pick<...>, {} | Pick<...>
ファイルA
export function storeFactory() {
const baseEntityComponents = {}
const extensionComponents = {}
return defineStore(`store_id`, () => ({ // type OK
...baseEntityComponents,
...extensionComponents,
}));
}
ファイルB
import {storeFactory} './fileA.ts'
export const useStore = storeFactory(); // type lost
質問
自動型推論を保持したまま、define store をファクトリーメソッドでラップするにはどうすればいいですか?自動型推論が不可能な場合、手動で型を定義する方法はありますか。ストアのすべてのメソッドを持つインターフェースを作成しましたが、それは明らかに、これらのメソッドを含む pinia ストアのインスタンスと同じ型ではありません。