TypeScript函数中的剩余参数
有一种情况,我们不知道要向函数传入多少个参数,这时候我们就可以使用剩余参数来定义。
剩余参数语法允许我们将一个不确定数量的参数作为一个数组传入。
函数的最后一个命名参数 restOfName 以 ... 为前缀,它将成为一个由剩余参数组成的数组,索引值从0(包括)到 restOfName.length(不包括)。
function addNumbers(...nums:number[]){ var i; var sum:number=0; for(i=0;i<nums.length;i++){ sum=sum+nums[i]; } console.log("和为:",sum); } addNumbers(1,2,3); addNumbers(10,10,10,10,10);
编译运行:
//简单求和函数 // 这个函数接受任意数量的数字参数,并返回它们的总和。 function sum(...numbers:number[]):number{ return numbers.reduce((acc,curr)=>acc+curr,0); } console.log(sum(1,2,3)); console.log(sum(4,5)); console.log(sum(10)); // 处理字符串数组 function concatenateStrings(...strings:string[]):string{ return strings.join(' '); } console.log(concatenateStrings('hello','world')); console.log(concatenateStrings('typescript','is','awesome')); //混合类型参数 // 虽然剩余参数通常用于同类型参数的集合, // 但你也可以将它们作为任意类型的数组来处理, // 这在某些情况下可能很有用。 // 例如,你可以创建一个函数,它接受任意数量和类型的参数,并返回它们的类型信息。 function logTypes(...args:any[]):void{ args.forEach((arg, index)=>{ console.log(`Argument ${index+1}:${typeof arg}`); }); } logTypes(42,'hello',true, {key:'value'});
编译运行:
