Какой тип хранилища vuex возвращен плагину vuex во время его инициализации? - PullRequest
0 голосов
/ 25 марта 2020

Инициализация магазина выполняется следующим образом:

/* Logic */
import Vue from 'vue'
import Vuex, { StoreOptions } from 'vuex'

Vue.use(Vuex)

const DataManager = new UserDataManager()

type RootStateType = {
  version: string
}

const store: StoreOptions<RootStateType> = {
  // @ts-ignore
  state: {
    version: '1.0.0'
  },
  modules: {...},
  plugins: [DataManager.init()]
}

export default new Vuex.Store<RootStateType>(store)

... в то время как плагин:

export class UserDataManager {
  ... logic

  public init () {
    return (store: <TYPE?>) => {
      store.watch(
        (state: RootStateType) => {
          return [state.user.authentication.id]
        },
        (watched: string[]) => {
          const userID = watched[0]
          ... logic
        }
      )
    }
  }
}

Я немного озадачен, если какой-то правильный тип может быть прошло здесь? Я пытался передать его:

type storeType = StoreOptions<RootStateType>

...
    return (store: storeType) => {
...

, но он возвращает: TS2339: Property 'watch' does not exist on type 'StoreOptions<RootStateType>' Я буду очень признателен, если кто-нибудь поделится некоторыми идеями по этой теме c: -)

1 Ответ

1 голос
/ 29 марта 2020

Просмотр на vuex-persist , и Store<RootStateType> должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...