打字稿:ReferenceError:初始化前无法访问“存储”

时间:2019-06-02 09:14:54

标签: typescript oop inheritance

我有一个存储状态(使用mobx)的类Store。

export class Store<State> {
    @observable
    public state: State;

    constructor(protected rootStore: RootStore, state: State) {
        this.state = state || ({} as State);
    }

    @action
    setState(state: State) {
        this.state = {
            ...this.state,
            ...state
        };
    }
}

我正在尝试实现一个类UserState

interface UserState {
    authorised?: boolean;
    loading?: boolean;
    name?: string;
    balance?: number;
}

export class UserStore extends Store<UserState> {
    constructor(rootStore: RootStore) {
        super(rootStore, {
            authorised: false,
            loading: true,
            name: ''
        })
    }
}

一切似乎都适合我,但我有一个错误:

ReferenceError: Cannot access 'Store' before initialization

我只是尝试在商店中设置一些默认值,而在Store中它似乎在构造函数中,因此显然已对其进行了初始化。

enter image description here

1 个答案:

答案 0 :(得分:0)

在将Store类与全局存储区放在同一文件中之前,将其移至独立文件中解决了问题。