跳到主要内容

TypeScript - 可选参数

在 TypeScript 中,可选参数允许你在调用函数时省略某些参数。当你不需要为函数传递所有参数时,可选参数非常有用。可选参数通过在参数名后添加问号(?)来标记。

语法

以下是定义带有可选参数的函数的语法:

function functionName(para1: type1, para2?: type2): returnType {
// 函数体
}

在这个语法中,functionName 是函数名,para1 是必需参数,para2 是可选参数。

示例

示例1:使用可选参数

以下示例中,函数 sum 接受三个参数:xyz。其中,xy 是必需参数,z 是可选参数。

function sum(x: number, y: number, z?: number): number {
if (z !== undefined) {
return x + y + z;
} else {
return x + y;
}
}
console.log(sum(2, 3)); // 输出:5
console.log(sum(2, 3, 5)); // 输出:10

示例2:使用类型守卫检查可选参数

在以下示例中,我们使用类型守卫 typeof age === 'number' 来检查 age 是否有值。

function greet(name: string, age?: number): void {
if (typeof age === 'number') {
console.log(`You are ${age} years old.`);
}
}
greet('Rudy', 30); // 输出:You are 30 years old.

示例3:可选参数必须是最后一个参数

可选参数必须放在必需参数之后。

function add(x: number, y?: number): number {
return x + (y || 0);
}
console.log(add(2, 3)); // 输出:5
console.log(add(2)); // 输出:2

示例4:可选参数不能有默认值

可选参数不能同时具有默认值。如果你需要为参数提供默认值,可以使用默认参数。

function greet(name: string, age: number = 30): void {
console.log(`Hello, ${name}!`);
console.log(`You are ${age} years old.`);
}
greet('Rudy'); // 输出:Hello, Rudy! You are 30 years old.

小结

可选参数是 TypeScript 中一个非常实用的特性,允许你在调用函数时省略某些参数。通过在参数名后添加问号(?),你可以标记一个参数为可选。可选参数必须放在必需参数之后,并且不能同时具有默认值。掌握可选参数的使用方法,可以帮助你编写更加灵活和易用的函数。