在TypeScript

时间:2017-09-26 22:21:25

标签: typescript mobx

我正在尝试使用TypeScript在我的React项目中使用Mobx库。假设在tsconfig.json中启用了“experimentalDecorators”。

在Mobx中,可观察装饰器获取值(在下面的情况下为string [])并返回一个可观察的值(在本例中为IObservableArray)。这意味着下面的store.todos实际上是IObservableArray而不是String []。

但是,TSC似乎没有检查修饰属性的派生值,仍然认为todos是字符串[]。

class TodoStore {
    @observable public todos = ["buy milk", "buy eggs"];
}
const store = TodoStore;
store.todos.replace([]);  // <- error as replace comes from IObservableArray

有没有办法配置TypeScript来正确确定更改值类型的装饰器函数的派生值类型?

下面没有@ notation的等效代码给了我想要的东西,但想知道是否有办法使用装饰器语法(@decolator)来做同样的事情。

class Store {
    public todos = observable(["buy milk", "buy eggs"]);
}

0 个答案:

没有答案