演習 - パラメーターを使用する

完了

この演習では、必須、省略可能、および既定のパラメーターを持つ関数を作成します。

必須のパラメーター

  1. プレイグラウンドを開き、既存のコードがあれば削除します。

  2. 次のアロー関数を入力します。この関数は、3 つの必須パラメーターを受け取ります。

    let addThreeNumbers = (x: number, y: number, z: number): number => x + y + z;
    
  3. addThreeNumbers(10, 20)」と入力して、関数を呼び出してみます。 TypeScript ではエラー "引数を 3 つ想定していますが、2 つ与えられました。'z' の引数が与えられていません。 実行後、この関数からは NaN が返されます。3 つ目の引数が undefined として渡され、計算を無効にしたためです" が表示されます。

  4. addThreeNumbers(10, 20, 30, 40)」と入力するとどうなるでしょう。 TypeScript ではエラー "引数を 3 つ想定していますが、4 つ与えられました。 実行時、4 つ目の引数が破棄され、この関数からは 60 が返されます" が表示されます。

省略可能なパラメーター

  1. この関数で、y パラメーターを省略可能にしてみます。 処理内容

    let addThreeNumbers = (x: number, y?: number, z: number): number => x + y + z;
    
  2. 省略可能パラメーターの位置に問題があるため、TypeScript でエラーが発生します。 パラメーター リストで、省略可能パラメーターはすべての必須パラメーターの後に指定されている必要があります。 y パラメーターの代わりに、z パラメーターを省略可能にしてみてください。 また、この関数で正しい値が返されるようにするには、zundefined として渡される可能性に対処するように更新する必要もあります。 これで、addThreeNumbers(10, 20)addThreeNumbers(10, 20, 30) を使用して関数を呼び出すことができるようになります。

    let addThreeNumbers = (x: number, y: number, z?: number): number => {
        if((z === undefined)) {
            return x + y;
        } else {
            return x + y + z;
        }
    };
    

既定のパラメーター

  1. 次のアロー関数を入力します。この関数は、3 つの必須パラメーターを受け取ります。

    let subtractThreeNumbers = (x: number, y: number, z: number): number => x - y - z;
    
  2. z: numberz = 100 に置き換えて、z パラメーターに既定値 100 を割り当て ます。

    let subtractThreeNumbers = (x: number, y: number, z = 100): number => x - y - z;
    
  3. 2 つおよび 3 つの引数を使用して関数を呼び出し、結果をテストしてみてください。

    subtractThreeNumbers(10, 20);       // returns -110 because 'z' has been assigned the value 100
    subtractThreeNumbers(10, 20, 15);   // returns -25