首页 > 解决方案 > 尝试访问 Quasar V2 beta 应用程序的 Veux 4 商店中的 getter 函数时出现编译错误

问题描述

尝试访问 Quasar V2 beta 应用程序 Veux 4 商店中的 getter 函数时出现编译错误。

任何值上的不安全成员访问 ['item/getRandomNumber'].eslint@typescript-eslint/no-unsafe-member-access

即使禁用它也不会出现错误。请说明错误的原因以及如何解决。

setup() {
  return { randomNumber: computed(() => store.getters['item/getRandomNumber']) }
},

模块项下的getter.ts

import { GetterTree } from 'vuex';
import { StateInterface } from '../index';
import { ItemStateInterface } from './state';

const getters: GetterTree<ItemStateInterface, StateInterface> = {
  getRandomNumber ( /* context */) {
      return 20;
  }
};
export default getters;

模块项下的 index.ts

import { Module } from 'vuex';
import { StateInterface } from '../index';
import state, { ItemStateInterface } from './state';
import actions from './actions';
import getters from './getters';
import mutations from './mutations';

const itemModule: Module<ItemStateInterface, StateInterface> = {
  namespaced: true,
  actions,
  getters,
  mutations,
  state
};
export default itemModule;

存储/索引.ts

import { store } from 'quasar/wrappers'
import { InjectionKey } from 'vue'
import {
  createStore,
  Store as VuexStore,
  useStore as vuexUseStore,
} from 'vuex'

import item from './module-item'
import { ItemStateInterface } from './module-item/state';

export interface StateInterface {
  item : ItemStateInterface
}
declare module '@vue/runtime-core' {
  interface ComponentCustomProperties {
    $store: VuexStore<StateInterface>
  }
}

export const storeKey: InjectionKey<VuexStore<StateInterface>> = Symbol('vuex-key')

export default store(function (/* { ssrContext } */) {
  const Store = createStore<StateInterface>({
    modules: {
      item
    },

    // enable strict mode (adds overhead!)
    // for dev mode and --debug builds only
    strict: !!process.env.DEBUGGING
  })

  return Store;
})

export function useStore() {
  return vuexUseStore(storeKey)
}

标签: vue.jsvuejs2vuexquasar-frameworkvuex4

解决方案


推荐阅读