摘要:在本教程中,您将学习 TypeScript 剩余参数以及如何使用它们将不确定数量的参数表示为数组。
剩余参数允许函数接受零个或多个指定类型的参数。在 TypeScript 中,剩余参数遵循以下规则
- 一个函数只有一个剩余参数。
- 剩余参数出现在参数列表的最后。
- 剩余参数的类型为数组类型。
具有单个类型的剩余参数
要声明剩余参数,请在参数名称前加上三个点 (…),并使用数组类型作为类型注释
function fn(...rest: type[]) {
//...
}
Code language: JavaScript (javascript)
以下示例演示了如何使用剩余参数
function getTotal(...numbers: number[]): number {
let total = 0;
numbers.forEach((num) => total += num);
return total;
}
Code language: JavaScript (javascript)
在此示例中,getTotal()
计算传递给它的数字的总和。
由于 numbers 参数是剩余参数,因此您可以传递一个或多个数字来计算总和
console.log(getTotal()); // 0
console.log(getTotal(10, 20)); // 30
console.log(getTotal(10, 20, 30)); // 60
Code language: JavaScript (javascript)
具有多个类型的剩余参数
TypeScript 允许您使用联合类型处理具有多个类型的剩余参数。例如
function combine(...args: (number | string)[]): [number, string] {
let total = 0;
let str = '';
args.forEach((arg) => {
if (typeof arg === 'number') {
total += arg;
} else if (typeof arg === 'string') {
str += arg;
}
});
return [total, str];
}
const [total, str] = combine(3, 'Happy', 2, 1, ' New Year');
console.log({ total });
console.log({ str });
输出
{ total: 6 }
{ str: 'Happy New Year' }
Code language: CSS (css)
在此示例中,我们定义了一个 combine()
函数,它使用可以是数字或字符串的剩余参数来接受可变数量的参数
...args: (number | string)[]
该函数执行两件事
- 对所有数字求和
- 连接所有字符串。
然后,它返回一个元组,其中包含数字的总和和连接的字符串。
总结
- 使用剩余参数允许函数接受可变数量的相同或不同类型的参数。
- 使用
...args type[]
语法定义具有相同类型的剩余参数。 - 使用
...args (type1 | type2 ) []
语法定义具有不同类型的剩余参数。
本教程对您有帮助吗?