错误:在使用 get 函数时,类型转换表达式应该用括号括起来

Sea*_*ker 6 javascript parameters get parentheses axios

我是 javascript 新手,我正在尝试向 youtube API 发出 get 请求。在使用 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

    }
});
Run Code Online (Sandbox Code Playgroud)

我的问题与我何时使用这些设置使用 get 函数有关。

下面的代码给了我以下错误:“解析错误:类型转换表达式应该用括号括起来”

onTermSubmit = (term) => {

        youtube.get('/search', 
            params: {
                q:term
            }
        );
    };
Run Code Online (Sandbox Code Playgroud)

但是当我在参数周围添加括号时它工作正常:

onTermSubmit = (term) => {

        youtube.get('/search', {
            params: {
                q:term
            }
        });
    };
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么包含括号可以解决此错误,以及该错误最初的实际含义吗?

T.J*_*der 5

如果没有大括号(它们不是圆括号),您的代码将是无效的 JavaScript,因为您params: {q:term}在对象字面量之外有一个属性初始值设定项 ( ),解析器期望get. 我从错误消息中猜测您正在使用 TypeScript,它试图将 after 部分解释params:为类型表达式。

添加{}修复它是因为您需要将该属性初始值设定项包装在一个对象文字中,因此您将一个对象作为第二个参数传递给get.