facebook/flow

Can't get flow type coverage for a function

Fermée

#2 255 ouverte le 16 août 2016

 (18 commentaires) (3 réactions) (0 personne assignée)Rust (1 885 forks)batch import
coveragehelp wanted

Métriques du dépôt

Stars
 (22 203 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

Description

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.

Guide contributeur