関数に引数を渡す時に、不定長の場合の渡し方で配列を使った場合とrest parameterを使った場合です。
配列の場合はあくまで引数は配列が一個渡されるだけで、呼び出し側も配列で呼び出し。
rest parameterの場合には、呼び出し側は可変長引数を羅列ですから明らかに別物です。
// argument as an array
function sum(numbers: number[]): number{
return numbers.reduce((total, n) => total + n, 1) // the return value starts with 1
}
console.log(sum([1, 2, 3, 4, 5])) // 16
// rest parameter (type safe compared to arguments method)
function sumRest(message: string, ...numbers: number[]):[string, number]{
return [message, numbers.reduce((total, n) => total + n, 1)]
}
let res: [string, number] = sumRest('sum :', 1, 2, 3, 4, 5)
console.log(res[0], res[1] ) // sum : 16
sumRest()の呼び出し時のresの戻り値型指定は不要ですがコメントのようなもの。sumRest()の定義側では戻り値の型指定は必須です。
admin