TypeScript 提供可选参数的语法

TypeScript 提供可选参数的语法

在TypeScript中,”?”表示可选参数。当参数不是强制要求具有值或被指定时,我们使用可选参数。即使一个函数指定了参数,在JavaScript中你可以调用它而不给出任何参数。因此,默认情况下,在JavaScript中支持可选参数,但在TypeScript中情况并不相同。

在TypeScript中,每个函数调用都会被编译器检查,当函数指定的参数数量与参数数量不一致,或者参数的类型与实参的类型不匹配时,会发出错误。我们使用”?”在参数名后面使函数参数变为可选。就像剩余参数一样,可选参数必须出现在主要或必需参数之后,否则会产生错误。

语法: 以下是可选参数的语法:

parameter_name ? : type

示例1:在函数中使用可选参数

下面是一个简单的示例,展示了一个用于求两个数之和的函数。其中,num2被视为可选参数。在程序中,我们通过检查num2是否未定义,来确保num2有传入的值。因此有两种情况:如果我们给可选参数传入了值,或者只有必填参数有与之关联的值。

Javascript

// Function to add two numbers
function add(num1: number, num2?: number): number {
  if (typeof num2 !== "undefined") {
    return num1 + num2;
  }
  return num1;
}
 
// Function call
console.log(add(2, 3));
console.log(add(9));

输出:

5
9

示例2: 可选参数必须在必选参数之后出现

可选参数必须在必选参数之后出现。在下面的示例中,我们违背了这一规定,指定了可选参数在主要参数之前,typescript编译器报错:”必选参数后面不允许出现可选参数”。

Javascript

// Add function
function add(num1?: number, num2: number): number {
  if (typeof num2 !== "undefined") {
    return num1 + num2;
  }
  return num1;
}
 
// Function call
console.log(add(2, 3));
console.log(add(9));

输出:

error TS1016: A required parameter cannot follow an optional parameter.
function add(num1?: number, num2: number): number { .. }

参考: https://www.typescriptlang.org/docs/handbook/functions.html#optional-and-default-parameters

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程