facebook/flow

Can't get flow type coverage for a function

已关闭

#2,255 创建于 2016年8月16日

 (18 条评论) (3 个反应) (0 位负责人)Rust (1,885 个派生)batch import
coveragehelp wanted

仓库指标

星标
 (22,203 个星标)
PR 合并指标
 (PR 指标待抓取)

描述

I have the following function:

type KeyboardInfo = {
  key?: string,
  code?: string,
  meta?: boolean,
  alt?: boolean,
  ctrl?: boolean,
  shift?: boolean,
  prevent?: boolean,
  log?: boolean
}

function on(event: KeyboardEventTypes, {key, meta, alt, code, shift, ctrl, prevent = true, log = false}: KeyboardInfo, callback: (e: KeyboardEvent) => void) {
  window.addEventListener(event, (e: KeyboardEvent) => {
    if (log) {
      console.log(e);
    }

    if (key && e.key !== key) {
      return;
    }
    if (meta && e.metaKey !== meta) {
      return;
    }
    if (code && e.code !== code) {
      return;
    }
    if (ctrl && e.ctrlKey !== ctrl) {
      return;
    }
    if (alt && e.altKey !== alt) {
      return;
    }
    if (shift && e.shiftKey !== shift) {
      return;
    }
    if (prevent) {
      e.preventDefault();
    }
    callback(e);
  });
}

I try to get this covered by flow, but I'm not sure how. Atom says it is not covered: image

Is this because I call window? Not sure what is going on here.

贡献者指南