我开始在我的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的动态特性和流量吗?说实话,它大大降低了我的工作效率,而不是提高它。
非常感谢任何帮助