如何在带有js流的对象常量中指定此

时间:2018-11-22 09:26:43

标签: javascript flowtype object-literal

我正在使用// @flow strict,但是在使用this时,它在某种对象常量中无法正常工作。 this似乎被解释为任意。

这是示例代码

type TestType = {
  arr: Array<number>,
  fun: () => void,
}

const testObject: TestType = {
  arr:[],
  fun(){
    this.arr.toUpperCase();
  }
}

testObject.fun();

我如何告诉流知道this.arr.toUpperCase()是不存在的,因为this.arr是一个数组?

1 个答案:

答案 0 :(得分:1)

似乎no way在函数中明确定义了this类型:

  

在Flow中,您无需输入注释,然后Flow会检查您使用该函数调用的上下文。

作为解决方法,您can do something like:

const testObject: TestType = {
  arr:[],
  fun(){
    const {arr}: TestType = this;
    arr.toUpperCase();
  }
}

testObject.fun();