I’m having great joy working with Pinia, so much I’m introducing it at work. It seems reliable so far.
I found a quirk that’s annoying, however. In VS Code autocomplete, all the contents of the store are exposed – that includes all the internals we should not see.
After digging into the code and a lot of experimentation, I finally found a way to filter the visible fields using TypeScript:
import {defineStore, StoreActions, StoreGetters, StoreState} from 'pinia'; const useDef = defineStore('main', () => { return {}; }); export type ReachableStore = StoreActions<ReturnType<typeof useDef>> & StoreGetters<ReturnType<typeof useDef>> & StoreState<ReturnType<typeof useDef>>; const useStore = (): ReachableStore => useDef(); export default useStore;
Although those types are exported by Pinia, they have basically zero documentation. I’m considering contribute with some documentation improvement, but I’m unsure if it’s worth.