在函数的打字稿中声明诺言类型

问题描述 投票:0回答:1

我在某个地方看到了这段代码,只是很好奇,为什么需要在返回类型中指定Promise?函数不是返回对象的数据吗?什么是| null for

const getSomething = async (
  id: string
): Promise<UserData | null> => {
  try {
    const { data } = await axios.get(
      `${API}/user?id=${id}`
    );
    return data;
  } catch (err) {
    if (err.response) {
      return err.response.data;
    }
    return null;
  }
};
javascript typescript
1个回答
1
投票

异步函数总是返回Promises-这样,可以在函数内部等待异步await,并且可以在函数外部使用结果。

[此处,getSomething尝试从axios调用中检索数据。如果调用成功,则仅返回数据:

return data;

但是如果调用没有成功,它将返回以下内容之一:

if (err.response) {
  return err.response.data;
}
return null;

如果抛出axios调用,没有err.response属性,则将返回null。如果忽略了| null,则无法正确键入getSomething功能。

© www.soinside.com 2019 - 2024. All rights reserved.