導入
「渡しても渡さなくてもよい引数」を作りたいときがあります。引数名のうしろに ? を付けるオプション引数と、初期値を決めておくデフォルト引数を使います。
説明
? を付けた引数は省略できます。省略されると値は undefined になります。
function hello(name: string, title?: string): void {
if (title) {
console.log(name + title);
} else {
console.log(name + "さん");
}
}
hello("太郎"); // 太郎さん
hello("花子", "先生"); // 花子先生
= 値 を書くと、省略時にその値が使われるデフォルト引数になります。
function price(base: number, tax: number = 0.1): number {
return Math.round(base * (1 + tax));
}
console.log(price(1000)); // 1100(tax は 0.1)
console.log(price(1000, 0.08)); // 1080
オプション引数は「必須の引数のうしろ」に置くのがルールです。
やってみよう
hello("花子", "様") のように第2引数を変えて実行し、表示の変化を確かめましょう。
演習
multiply という関数を作ってください。数値 a と、省略すると 2 になるデフォルト引数 b を受け取り、a * b を返します。multiply(5) の結果を console.log() で表示しましょう。
ヒント1を見る
function multiply(a: number, b: number = 2): number { return a * b; } と書きます。