type ResourceParser = (response: Response) => Promise; type ResourceSource = string | T; interface UseResourceOptions { parser?: ResourceParser; enabled?: boolean; onError?: (error: Error) => void; } interface ResourceState { data: T | null; loading: boolean; error: boolean; } /** * 通用的资源加载 Hook * 支持从 URL 加载资源或直接使用传入的数据 * * @example * // 加载 JSON(自动检测) * const { data, loading, error } = useResource('/api/data.json'); * * // 加载文本 * const { data } = useResource('/api/data.txt', { * parser: async (res) => res.text() * }); * * // 直接使用数据对象 * const { data } = useResource({ foo: 'bar' }); */ declare function useResource(source: ResourceSource | null | undefined, options?: UseResourceOptions): ResourceState; export default useResource;