我最近開始學習如何使用 Mobx 來管理我的應用程式的狀態,最近我遇到了以下錯誤:
Object literal may only specify known properties, and "data" does not exist in type "AnnotatiosMap<this, never>".
每當我想將班級的屬性設為私有時,就會發生這種情況。但是,如果它是公共的或受保護的,則不會出現問題。
這是我的代碼的一小段:
import { makeObservable, observable } from "mobx";
class Base {
private data: string[];
constructor() {
this.data = [];
makeObservable(this, {
data: observable,
});
}
public getData = (): string[] => {
return this.data;
};
}
export default new Base();
我應該怎么做才能使我的財產私有但仍被監視?
祝你有美好的一天!
uj5u.com熱心網友回復:
從檔案:
默認情況下,TypeScript 不允許您注釋私有欄位。這可以通過顯式傳遞相關私有欄位作為泛型引數來克服,如下所示:
makeObservable<MyStore, "privateField" | "privateField2">(this, { privateField: observable, privateField2: observable })
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/330849.html
標籤:javascript 打字稿 移动版 mobx-反应
上一篇:es6類函式中的this[functionName]導致“元素隱式具有'any'型別,因為字串型別的運算式不能用于索引”
