Ask Your Question

Revision history [back]

To access the data or error field for truthy/falsy checks with axios requests in Typescript, you can modify the wrapper by adding a try-catch block and returning the data or error field accordingly. Here is an example:

import axios, { AxiosResponse } from 'axios';

interface ApiResponse<T> {
  data?: T;
  error?: string;
}

async function fetchData<T>(url: string): Promise<T | null> {
  try {
    const response: AxiosResponse<ApiResponse<T>> = await axios.get(url);
    if (response.data && response.data.data) {
      return response.data.data;
    }
    if (response.data && response.data.error) {
      console.error(response.data.error);
    }
  } catch (error) {
    console.error(error);
  }
  return null;
}

In this example, the fetchData function returns either the data if it exists, or null if it does not. If there is an error, it logs the error message and returns null. Note that the type parameter T indicates the type of data that is expected to be returned. You can also modify this function to handle different HTTP methods or request configurations.