我是 javascript 的新手,我正在尝试向 youtube API 发出获取请求。在使用 axios 之前,我已经预先配置了一些与请求相关的东西。但是,我认为我的问题更多地与 get 函数的使用有关。
我为请求预定义的配置存储在“youtube”对象下。这是用于创建它的代码
import axios from 'axios';
const KEY = 'AIzaSyDVd1jDhcZdtJb--1_ncBqpL0Gxgfs9ys8';
export default axios.create({
baseURL: 'https://www.googleapis.com/youtube/v3',
params: {
part: 'snippet',
maxResults: 5,
key: KEY
}
});
我的问题与我何时使用这些设置使用 get 函数有关。
下面的代码给了我以下错误:“解析错误:类型转换表达式应该用括号括起来”
onTermSubmit = (term) => {
youtube.get('/search',
params: {
q:term
}
);
};
但是当我在参数周围添加括号时它工作正常:
onTermSubmit = (term) => {
youtube.get('/search', {
params: {
q:term
}
});
};
有人可以解释为什么包括括号可以解决这个错误,以及这个错误最初的实际含义是什么?
原文由 Sean Barker 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果没有花括号(它们不是圆括号),您的代码将是无效的 JavaScript,因为您在对象文字之外有一个属性初始值设定项(
params: {q:term}
),其中解析器需要get
的参数---
。我从错误消息中猜测您正在使用 TypeScript,它试图将params:
之后的部分解释为类型表达式。添加
{}
修复它,因为您需要将该属性初始值设定项包装在对象文字中,因此您将对象作为第二个参数传递给get
。