首页 > 解决方案 > TS 坚持我的 `useMemo` 函数返回 `null[]`

问题描述

下面的函数没有返回null[],但尽管我给函数给出了任何定义,但它显示了函数返回的错误null[]。这是什么原因?

const attributionList = React.useMemo<insertTypeHere>(() => {
    return uniqBy(
      flatMap(
        reject(attributions, (v) => v === null),
        (v) => {
          return v;
        }
      ),
      "snapshot.id"
    );
  }, [attributions]);

要清楚insertTypeHere不会改变 TS 认为函数返回的内容。

标签: reactjstypescript

解决方案


原来问题是初始化attributions为空。TS 将根据初始化推断类型,因此在不强制转换的情况下,它只会接受初始设置的类型。


推荐阅读