窗口对象的正确流量类型是什么?

时间:2017-08-18 09:27:16

标签: javascript flowtype

我需要从我的应用程序的根目录传入窗口,并且我对我应该使用的流类型感到困惑。

我试过

export default class ListAttribute extends Component {
  props: {
   frameWindow: mixed
  }
  componentDidMount() {
    this.props.frameWindow.addEventListener('click', this.closeList, false) 
  }
  ....
}

这给了我call of method addEventListener. Method cannot be called on mixed,我试着改进,没有运气。

我试着看这里,但找不到任何东西给bom本身。 https://www.saltycrane.com/flow-type-cheat-sheet/latest/#lib/bom.js

2 个答案:

答案 0 :(得分:4)

似乎是{p> There currently isn't any typings for the window object。目前,看起来使用了any的类型。

答案 1 :(得分:1)

您是否需要任何特定于window的方法?如果您所做的只是对addEventListener的一次调用,则可以在任何EventTarget上调用,window当然是。由于window的默认类型为any,因此您应该可以将其传递给EventTarget

这是一个更简单的例子,希望能够显示这个想法,而不会引入代码的所有细节:

function withWindow(window: EventTarget) {
  window.addEventListener("click", (e: MouseEvent) => console.log(e), false); 
}

withWindow(window); // type checks fine!

希望有所帮助!