TypeScript 解释关于rest参数和参数的问题
在本文中,我们将尝试理解与TypeScript中的Rest参数和参数相关的所有基本事实或细节。
Rest参数:
- Rest参数允许我们接受指定类型的零个或多个参数。
- 函数(或方法)只有一个rest参数。
- 此参数在函数的指定参数列表中出现在最后。
- 由于这里是TypeScript,所以rest参数的类型是数组类型(进一步,数组可以是字符串数据类型、数字数据类型或其他任何类型)。
语法:
以下是TypeScript提供的rest参数语法。
function function_name (...rest_parameter_name : type[]) { }
这里的“…”(三个点)表示剩余参数语法,后面是剩余参数的名称,再后面是剩余参数的类型(必须是数组数据类型)。
Rest参数:
- 这些是我们在合并两种数据类型时传递的参数(假设是两个数组的连接),使用相同的“…”(三个点)。
- 这种类型的参数通常用于合并、连接或其他操作目的。
语法: TypeScript中使用剩余参数的语法如下(通过示例进行说明)。
let array_1 : number[] = [1 , 2 , 3];
let array_2 : number[] = [5 , 6, 7];
array_1.push(array_2);
以下示例将帮助我们更清楚地理解上述说明的事实(如果您不知道,这些示例只能在本地PC上运行,如果您已安装了typescript,否则您可以选择一些在线typescript编译器)。
示例1: 在这个示例中,我们将使用剩余参数语法,在函数中获取传递的整数参数的总和。
Javascript
function getSum(...numbers: number[]): number {
let sum = 0;
numbers.forEach((num) => sum += num);
return sum;
}
// Function call
console.log(getSum(10 , 50 , 30));
console.log(getSum(-50 , 50 , -10 , 5));
输出:
90
-5
例子2: 在这个例子中,我们将多个字符串连接在一起,并通过函数作为参数传递进去。
Javascript
let generateGreeting = (greeting: string, ...names: string[]) : string =>{
return greeting + " " + names.join(", ") +"!";
}
// Function call
console.log(generateGreeting("Hello ", "GeeksforGeeks ", "ABCD ", "Apple"));
输出:
Hello GeeksforGeeks , ABCD , Apple!
示例3: 在这个例子中,我们将对作为参数传递给函数的所有数字进行乘法运算。
Javascript
let multiply = (a: number, ...numbers: number[]): number =>{
return numbers.reduce((acc, curr) => acc * curr, a);
}
// Function call
let result1 = multiply(2, 2, 2, 2, 7);
let result2 = multiply(2, 3, 2, 5, 8);
// Printing data
console.log(result1);
console.log(result2);
输出:
112
480
参考: https://www.typescriptlang.org/docs/handbook/functions.html#rest-parameters