在动态构建的对象上使用流类型

时间:2017-02-01 17:02:01

标签: javascript flowtype

我开始在我的javascript代码上使用流式检查器。我倾向于使用javascript非常实用,而且我经常用dinamically构建API。

例如,这在我的代码中很常见:

  const levels = [`error`, `warn`, `log`, `info`, `debug`];
  const API = Object.create(null);
  API.flush = flush.bind(API, false);
  // Here I'm attaching the rest of the methods to the api
  levels.reduce(
        (api, name, lvl) => {
          api[name] = handleLogMessage.bind(api, name, lvl);
          return api;
        }, API);

现在,如果我想用Flow覆盖这个界面,我尝试做这样的事情:

type iTracer = {
    flush(): void,
    warn(): void
};

但是我得到了几个错误,比如这个错误:'找不到可能为null的属性null null'或者更奇怪:Covariant property警告incompatible with contravariant use in assignment of computed property/element

流量不应该理解javascript的动态特性和流量吗?说实话,它大大降低了我的工作效率,而不是提高它。

非常感谢任何帮助

0 个答案:

没有答案