DRILL 02 / 値と関数
関数とデフォルト引数
引数と戻り値の型を定め、オプションの計算条件をデフォルト値で扱います。
COURSE ROUTETypeScript Foundation
0 / 8
YOUR TASK
calculateTotal() を完成させる
単価、個数、割引率を受け取り、割引後の合計金額を返してください。割引率が省略された場合は 0 とします。
- 入力
- price と quantity は 0 以上の数値、discountRate は 0 以上 1 以下の数値です。
- 出力
- `price × quantity × (1 - discountRate)` の計算結果を返します。
BEFORE CODING
省略された引数はどうなる?
割引率を渡さない呼び出しも受け付けるため、discountRate に初期値 0 を置きます。値が省略されても関数内では number として扱えるので、undefined を個別に判定する必要はありません。
calculateTotal(1200, 2) → 2400 割引後に残る割合
20%引きなら discountRate は 0.2 です。支払う割合は 1 - 0.2 で 0.8 になるため、単価と個数を掛けた後に 0.8 を掛けます。
初期値と省略可能な引数の違い
discountRate?: number と書くだけでは undefined が残ります。今回は省略時の意味が 0 と決まっているので、初期値を置くほうが計算を素直に書けます。
SYNTAX RECALL
確認する構文
function greet(name: string, suffix = "!"): string {
return `Hello, ${name}${suffix}`;
} - デフォルト引数を型推論に任せる
- 戻り値の型を number と明示する
- 計算結果を return する
STEPWISE HINTS
ヒント
01最初の一手
discountRate の宣言に `= 0` を加えると、省略時の値を設定できます。
02処理の組み立て
まず price と quantity を掛け、残る割合を掛けます。
03コードの形
`return price * quantity * (1 - discountRate);` が計算式になります。
AFTER ACCEPTED
解説
AC 後に解説が開きます
まずは自分の言葉で方針を説明し、コードに落としてみましょう。