Solución
solution.tsTypeScript
interface Product {
id: number;
name: string;
}
async function mockFetch(url: string): Promise<unknown> {
const db: Record<string, unknown> = {
"/api/products/1": { id: 1, name: "Laptop" },
"/api/products/2": { id: 2, name: "Mouse" },
"/api/products/bad": { error: "not found" },
};
return Promise.resolve(db[url] ?? null);
}
async function fetchProduct(url: string): Promise<Product> {
const data = await mockFetch(url) as any
if (!data || typeof data.id !== "number" || typeof data.name !== "string") {
throw new Error("Respuesta inválida")
}
return { id: data.id, name: data.name }
}
export { fetchProduct };0respuestas