reactjs - 如何使用 TypeScript 验证与 Axios GET 响应的接口(interface)

标签 reactjs typescript react-native axios

数据正在从 API 成功返回。这是我第一次使用 TypeScript 调用 API。我遇到的问题是我不确定我的接口(interface)是否成功验证了 AP​​I 数据。

const App = () => {
  const [userData, setUserData] = useState<User[]>([])
  console.log('User data: ', userData);

  useEffect(() => {
    axios
      .get<User[]>('https://jsonplaceholder.typicode.com/users')
      .then((response) => {
        setUserData(response.data)
      })
      .catch(error => console.log(error.message))
  }, [])

  return ...
};

export default App;

这是我的界面

export interface User {
  id: number,
  name: string,
  username: string,
  email: string,
  address: Address,
  phone: string,
  website: string,
  company: Company,
}

export interface Address {
  street: string,
  suite: string,
  city: string,
  zipcode: string,
  geo: Geolocation,
}

export interface Geolocation {
  lat: string,
  lng: string,
}

export interface Company {
  name: string,
  catchPhrase: string,
  bs: string,
}

最佳答案

如果您不确定界面中的 Prop 是否有数据。你可以使用这个语法 接口(interface) your_interface_name { your_props_name?: type_data

例如:export interface Geolocation { lat?: string, lng?: string, }

关于reactjs - 如何使用 TypeScript 验证与 Axios GET 响应的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65501942/

相关文章:

javascript - 如何在 react 中的不同组件库之间共享上下文?

html - &nbsp jsx 不工作

reactjs - 如何使用 MemoryRouter 来测试 useParams 调用

android - 在 React Native 中设置原生 UISplitViewController

react-native - 如何在 React Native FlatList (2018) 中向右滚动到列

javascript - 当没有任何 url queryString 参数时,React Router v6 重定向

reactjs - React Context Hook vs 将数据直接引入组件

javascript - Sublime 3 JS 片段到 Typescript

angular - 表单提交有 Angular Material

react-native - 图像 'contain' resizeMode 在 native react 中不起作用