TypeScript 可选参数

摘要:在本教程中,您将学习如何在函数中使用 TypeScript 可选参数。

在 JavaScript 中,即使函数指定了参数,您也可以在不传递任何参数的情况下调用函数。因此,JavaScript 默认支持可选参数。

在 TypeScript 中,编译器会检查每个函数调用,并在以下情况下发出错误

  • 参数的数量与函数中指定的参数数量不同。
  • 或者参数的类型与函数参数的类型不兼容。

由于编译器会彻底检查传递的参数,因此您需要注释可选参数以指示编译器在省略参数时不要发出错误。

要使函数参数可选,您可以在参数名称后使用?。例如

function multiply(a: number, b: number, c?: number): number {

    if (typeof c !== 'undefined') {
        return a * b * c;
    }
    return a * b;
}Code language: JavaScript (javascript)

工作原理

  • 首先,在c参数后使用?
  • 其次,使用表达式typeof c !== 'undefined'检查是否将参数传递给函数。

请注意,如果您使用表达式if(c)来检查参数是否未初始化,您会发现空字符串或零将被视为undefined

可选参数必须出现在参数列表中必需参数之后。

例如,如果您使b参数可选,而c参数是必需的,则 TypeScript 编译器将发出错误

function multiply(a: number, b?: number, c: number): number {

    if (typeof c !== 'undefined') {
        return a * b * c;
    }
    return a * b;
}Code language: JavaScript (javascript)

错误

error TS1016: A required parameter cannot follow an optional parameter.

总结

  • 使用parameter?: type语法使参数可选。
  • 使用表达式typeof(parameter) !== 'undefined'检查参数是否已初始化。
本教程是否有帮助?