📜  解释 TypeScript 中的其余参数和实参

📅  最后修改于: 2022-05-13 01:56:12.534000             🧑  作者: Mango

解释 TypeScript 中的其余参数和实参

在本文中,我们将尝试了解与 TypeScript 中的 Rest 参数和参数相关的所有基本事实或细节。

休息参数:

  • Rest Parameter 允许我们接受零个或多个指定类型的参数。
  • 一个函数(或方法)只有一个剩余参数。
  • 该参数最后出现在函数的指定参数列表中。
  • 由于这里是 TypeScript 进入图片,所以其余参数的类型是数组类型(进一步的数组可以是字符串数据类型或数字数据类型或任何数据类型)。

语法:以下是 TypeScript 中提供的其余参数语法。

function function_name (...rest_paramter_name : type[]) { }

这里这些“...”(三个点)表示剩余参数语法,后跟剩余参数的名称,然后是该剩余参数的类型(必须是数组数据类型)。

休息参数:

  • 这些是我们在使用相同的“...”(三点)合并两种数据类型(假设两个数组的串联)时传入的参数。
  • 这些类型的参数通常用于合并或连接或用于任何其他操作目的本身。

语法:以下是在 TypeScript 中使用 Rest Arguments 的语法(使用示例进行说明)。

let array_1 : number[] = [1 , 2 , 3];
let array_2 : number[] = [5 , 6, 7];
array_1.push(array_2);

以下示例将帮助我们更清楚地理解上述事实(如果您不知道,这些示例只有在您安装了 typescript 的情况下才能在本地 PC 上运行,否则您可能选择一些在线打字稿编译器)。

示例 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));


Javascript
let generateGreeting = (greeting: string, ...names: string[]) : string =>{
    return greeting + " " + names.join(", ") +"!";
}
  
// Function call
console.log(generateGreeting("Hello ", "GeeksforGeeks ", "ABCD ", "Apple"));


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


输出:

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