老师,我用vuex时候,使用了模块化:
user.ts
export interface UserProps{
isLogin: boolean;
name?: string;
id?: number;
}
const user: UserProps = {
isLogin: false
}
export const userStore = {
namespace: true,
state: () => user
}
column.ts
import { testData, testPosts } from '../testData'
export default {
namespace: true,
state: () => ({
columns: testData,
posts: testPosts
})
}
index.ts
import { createStore } from 'vuex'
import columnStore from './column'
import { userStore, UserProps } from './user'
import { ColumnProps, PostProps } from '../testData'
// export interface GlobalDataProps {
// columns: ColumnProps[];
// posts: PostProps[];
// user: UserProps;
// }
export interface GlobalDataProps {
userStore: UserProps
}
export default createStore<GlobalDataProps>({
modules: {
columnStore,
userStore
}
})
// export default createStore({
// modules: {
// columnStore,
// userStore
// }
// })
此时通过createStore创建出来的store可以正常的使用,即:store.state.userStore.isLogin
但是,我想要请教一下老师,在这种模块化下,我如何使得我通过createStore创建出来的store实例具有相应的类型?也就是如何使得我的modules甚至我嵌套的modules也能具备类型?