javascript - 打字稿从外部源返回数据对象
问题描述
下面我的打字稿代码有什么问题吗?
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;
}
};
一些人认为 Promise<any | null> 是不好的做法,但我想知道这里有什么问题,因为我们对来自外部源的数据结构一无所知。
解决方案
你需要问的问题是:
你能相信来自 API 的东西吗?你相信它会保持一致吗?如果没有,影响/风险是什么?
有些人认为,当您与(尤其是第 3 方)API 交互时,您应该始终验证它返回的所有内容。我认为这并不总是正确的,你需要达到一个平衡。
如果您打算完全验证从 API 返回的内容,请使用unknown
, notany
并确定您是否通过类型保护和断言函数获得了预期的结果。
推荐阅读
- python - 如何使用python打开浏览器页面并将其置于顶部
- java - 如何使用硒向下滚动div
- qt - 用于测试文件名是否以后缀结尾的正则表达式:错误结果
- django - 在 object_list 中获取特定字段(例如名称)而不是 pk 以呈现外键
- python - python如何检查2个字典键是否存在,如果其中一个键名不存在则引发异常
- regex - 正则表达式匹配年份
- javascript - JavaScript 中带有加载器 div 的哈希 URL
- asp.net-core-webapi - 带有 Asp.net 核心 webapi 应用程序的单独类库中的 DBcontext 类
- python - 如何使用 Rust 中的外部进程处理套接字响应?
- php - 未定义变量:sections(查看:C:\xampp\htdocs\fawateer\resources\views\sections.blade.php)