首页 > 解决方案 > FlowJS - 数字......与字符串不兼容

问题描述

有人可以解释为什么我在这段代码中出现以下 FlowJS 错误吗?

数字1与字符串 [2] 不兼容

(周围的白框number表示流量错误) 在此处输入图像描述

如果我删除 final map(),流程错误就会消失:

function splitKey(key: string | Array<string | number>): Array<any> {
  const arr = typeof key === 'string' ? key.split('.') : key;
  return arr.length === 1 && arr[0] === '' ? [] : arr;
}

更奇怪的是,如果我将值映射到它们自己(map(k => k)),它会触发错误。在这种情况下,映射值是什么让 Flow 感到困惑?

function splitKey(key: string | Array<string | number>): Array<any> {
  const arr = typeof key === 'string' ? key.split('.') : key;
  return arr.length === 1 && arr[0] === '' ? [] : arr.map(k => k);
}

标签: javascriptflowtype

解决方案


感谢flow 的 playground,我们可以看到这个错误出现在 0.83.0 但在 0.84.0

不幸的是,我在发行说明中没有看到与此问题相关的任何内容,因此根本原因仍然未知。


推荐阅读