【问题标题】:Mobx - Object literal may only specify known propertiesMobx - 对象字面量只能指定已知属性
【发布时间】:2021-10-21 13:53:21
【问题描述】:

我最近开始学习如何使用 Mobx 来管理我的应用程序的状态,最近我遇到了以下错误:

Object literal may only specify known properties, and "data" does not exist in type "AnnotatiosMap<this, never>".

每当我想将班级的财产设为私有时,就会发生这种情况。但是,如果它是公共的或受保护的,则不会出现问题。

这是我的代码的一个小sn-p:

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();

我应该怎么做才能将我的财产设为私有但仍受到监视?

祝你有美好的一天!

【问题讨论】:

    标签: javascript typescript mobx mobx-react


    【解决方案1】:

    From the docs:

    默认情况下,TypeScript 不允许您注释私有字段。这可以通过将相关私有字段作为通用参数显式传递来克服,如下所示:makeObservable&lt;MyStore, "privateField" | "privateField2"&gt;(this, { privateField: observable, privateField2: observable })

    【讨论】:

      猜你喜欢
      • 2018-09-06
      • 2022-11-15
      • 1970-01-01
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      • 2022-08-24
      • 2021-02-18
      • 2021-09-27
      相关资源
      最近更新 更多