我正在尝试使用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"]);
}