跳到主要内容

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;
}

怎么运行的:

  • 首先,在参数 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;
}

报错:

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

概括

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