在此没有找到属性

时间:2017-07-12 18:44:40

标签: flowtype

我有一个类,我在构造函数中声明了几个属性。

class DevModuleLookup {
  constructor() {
    this.kGlobal = 'z'
    this.kHelpMessage = '...'
  }

  ...
}

我收到流量错误

property `kGlobal`. Property not found in DevModuleLookup

我可以使用类属性,但它们仍然是第2阶段的ATM,直到它们到达第3阶段才能使用它们。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

对于要进行类型检查的代码,您需要在类体中声明类型,例如

class DevModuleLookup {
  kGlobal: string;
  kHelpMessage: string;

  constructor() {
    this.kGlobal = 'z'
    this.kHelpMessage = '...'
  }
}

Flow已经为ES类采用了部分提议的类属性语法,允许在类体中命名属性。

即使您不想自己使用类属性,因为它们是提案而不是官方语言的一部分,您仍然可以在没有= ...任务的情况下使用上面的注释,并且它们将会只是被剥离出来的方式与Babel删除任何其他Flow类型注释相同(假设您已启用flow预设)。