Typescript:可选的函数参数导致函数体中出现问题

Fun*_*abe 6 optional-arguments typescript visual-studio-code

我是TypeScript的新手,并且函数中的可选参数有一点问题.我在Visual Studio Code中为query参数获得了以下错误(参见屏幕截图).我真的不明白这个错误,因为我将类型定义为string.那么为什么我会收到这个错误?

消息:'类型'字符串的参数| undefined'不能赋值给'string'类型的参数.类型'undefined'不能分配给'string'类型

VS Code中的屏幕截图错误

public async fetchPut<T>(requestURL: string, body: TBody, query?: string): Promise<T> {

    const finalRequestOption: IFetchOption = Object.assign({
        method: 'PUT',
        headers: this.headers
    }, { body });

    const response: Response = await this.httpClient.fetch(
            this.getRequestURL(requestURL, query), 
            finalRequestOption);

    return response.json();
}
Run Code Online (Sandbox Code Playgroud)

Ale*_* L. 5

getRequestURL函数期望query是 a string,但fetchPut函数将查询定义为string | undefined(可选参数)。

您也 可以将query参数定义为可选:getRequestURL

getRequestURL(requestURL: string, query?: string)
Run Code Online (Sandbox Code Playgroud)

或者为其提供默认值:

getRequestURL(requestURL: string, query: string = '')
Run Code Online (Sandbox Code Playgroud)