指定对象将有一个特定的属性,但其余属性与React Typescript不明确



我创建了一个自定义挂钩,非常简单,用于获取和返回数据。

useFetchData

import { useEffect, useState } from "react";
export const useFetchData = (
  URI: string
): [any[] | null, boolean, string | null] => {
  const [data, setData] = useState<any[] | null>(null);
  const [loading, setLoading] = useState<boolean>(true);
  const [errorMessage, setErrorMessage] = useState<string | null>(null);
  useEffect(() => {
    const fetchData = async () => {
      try {
        const res = await fetch(URI);
        setData(await res.json());
        setTimeout(() => {
          setLoading(false);
        }, 2000);
      } catch (err) {
        setErrorMessage(err.message);
      }
    };
    if (!URI) return;
    fetchData();
  }, [URI]);
  return [data, loading, errorMessage];
};

使用TypeScript,我想指定属于dataany[]类型至少应该有一个属性id: string | number。实现这一点的最佳方法是什么?

只需使用{id: string | number}[]。任何具有id属性的对象都可以分配给该类型,因为它们都是其子类型

最新更新