Javascript typescript从外部源返回数据对象

Javascript typescript从外部源返回数据对象,javascript,typescript,Javascript,Typescript,我下面的打字脚本代码有什么问题吗 import axios from 'axios'; export const createOrder = async ( locale: string ): Promise<any | null> => { try { const { data } = await axios.post( url, {data: locale} ); return data; } catch (er

我下面的打字脚本代码有什么问题吗

import axios from 'axios';

export const createOrder = async (
  locale: string
): Promise<any | null> => {
  try {
    const { data } = await axios.post(
      url,
      {data: locale}
    );
    return data;
  } catch (err) {
    console.error(err.message);
    return null;
  }
};
从“axios”导入axios;
导出常量createOrder=async(
地区:字符串
):承诺=>{
试一试{
const{data}=wait axios.post(
网址,
{data:locale}
);
返回数据;
}捕捉(错误){
控制台错误(错误消息);
返回null;
}
};

有些人认为承诺是不好的做法,但我想知道这有什么错,因为我们不知道数据的结构,因为它来自外部来源。

您需要问的问题是:

你能相信API的结果吗?你相信它会保持一致吗?如果没有,影响/风险是什么

有些人认为,当您与(特别是第三方)API交互时,您应该始终验证它返回的所有内容。我认为这并不总是正确的,你需要找到一个平衡点


如果您打算完全验证API返回的内容,请使用
unknown
,而不是
any
,并确定是否通过类型保护和断言函数实现了预期效果。

您可以使用
unknown
而不是
any
,一旦尝试使用data@MikeS. 假设您必须定义其他人定义的每个属性类型,并非所有数据都与您的使用相关,是否需要拒绝api调用中的返回类型?您只能定义实际使用/访问的道具。你对之后的回复怎么办?最好的或者至少是最常见的做法是什么?在现实生活中,我们对很多东西进行api调用,包括分析和跟踪之类的东西,我看不出有什么意义。不,因为这取决于具体情况。尝试评估API意外返回的风险和影响,并从中着手。如果您认为可能性很低,或者不值得花时间验证响应,那么就不要这样做。