Restパラメータの型定義
CoddyのJavaScriptジャーニー「Introduction To TypeScript」セクションの一部。レッスン 27/73。
TypeScriptは、型安全性を維持しながらこのシナリオをエレガントに処理するために、レストパラメータを提供しています。
レストパラメータは、スプレッド演算子(...)の後にパラメータ名と型指定された配列を続けて使用します。これにより、残りのすべての引数が1つの配列パラメータにまとめられます:
function sum(...numbers: number[]): number {
let total = 0;
for (const num of numbers) {
total += num;
}
return total;
}
// 任意の数の引数で呼び出すことができます
sum(1, 2); // 3
sum(1, 2, 3, 4, 5); // 15レストパラメータは、常に関数シグネチャの最後のパラメータである必要があります。TypeScriptは、レストパラメータに渡されるすべての引数が指定された配列型と一致することを保証し、静的型付けの安全性とともに可変引数の柔軟性を提供します。
チャレンジ
簡単任意の数の数値引数を受け取り、その合計を number 型として返す、sumAll という名前の関数をレストパラメータ(残余引数)を使用して作成してください。この関数には、明示的な戻り値の型アノテーションを含める必要があります。
任意の数の数値引数を受け取り、その中の最大値を number 型として返す、findMaximum という名前の別の関数をレストパラメータを使用して作成してください。この関数には、明示的な戻り値の型アノテーションを含める必要があります。
string 型の必須パラメータ separator と、それに続く任意の数の文字列引数を受け取るレストパラメータを持つ、concatenateStrings という名前の3つ目の関数を作成してください。この関数は、すべての文字列引数をセパレータで連結して返す必要があります。この関数には、string 型の明示的な戻り値の型アノテーションを含める必要があります。
以下の値を使用して関数を呼び出し、結果を出力して関数をテストしてください:
sumAllを5、10、15で呼び出すsumAllを1、2、3、4、5で呼び出すfindMaximumを8、3、12、7で呼び出すfindMaximumを25、18で呼び出すconcatenateStringsをセパレータ"-"と、"apple"、"banana"、"cherry"で呼び出すconcatenateStringsをセパレータ" | "と、"red"、"green"、"blue"、"yellow"で呼び出す
各結果を、上記の指定された順序で個別の行に出力してください。
自分で試してみよう
// TODO: ここにコードを書いてください
// 残余引数を使用して sumAll 関数を作成します
// 残余引数を使用して findMaximum 関数を作成します
// セパレータと残余引数を使用して concatenateStrings 関数を作成します
// 関数をテストして結果を出力します
console.log(sumAll(5, 10, 15));
console.log(sumAll(1, 2, 3, 4, 5));
console.log(findMaximum(8, 3, 12, 7));
console.log(findMaximum(25, 18));
console.log(concatenateStrings("-", "apple", "banana", "cherry"));
console.log(concatenateStrings(" | ", "red", "green", "blue", "yellow"));このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Introduction To TypeScriptのすべてのレッスン
2基本の型
基本の型: str, num, boolean'any' 型: 脱出ハッチ'unknown' 型'null' と 'undef' の扱い型推論の実践明示的な型アノテーションまとめ:基本の型の演習5型:エイリアス、ユニオン型、インターセクション型
プリミティブ型の型エイリアスユニオン型 ('|')ユニオン型の扱い方リテラル型インターセクション型 ('&')型エイリアスの組み合わせまとめ:高度な型の組み合わせ自分で練習してみよう: JavaScriptオンラインコンパイラ