🛡
[TypeScript] 関数の引数を必須ではなくオプションにする
はじめに
今回は下記書籍でTypeScript
について学習しました。
下記内容まで解説します。
-
parameter
について
結論
前提
オプションパラメーターは、常に暗黙で「undefined
」になる可能性がある
const announceSong = (song: string, singer?: string) => {
console.log(`Song: ${song}`);
if (singer) {
console.log(`Singer: ${singer}`);
}
};
やり方
1. オプションパラメーターに文字列の引数を渡す
指定した文字列に文字列を引数として渡したので、問題がない
announceSong('Have fun !', 'ayaka');
"Song: Have fun !"
"Singer: ayaka"
2. オプションパラメーターに undefined の引数を渡す
singer は「undefined」が追加された合併型になるので、Error にならない
announceSong('Have fun !', undefined);
"Song: Have fun !"
3. オプションパラメーターは、必ず最後であること
オプションパラメーターを先頭に持ってくると、下記のような Error が発生する
const announceSong = (song?: string, singer: string) => {
console.log(`Song: ${song}`);
if (singer) {
console.log(`Singer: ${singer}`);
}
};
A required parameter cannot follow an optional parameter.
Discussion