MofuMofu2 / typescript-sandbox

MIT License
0 stars 0 forks source link

ユニオン型と型ガードの利用 #53

Closed MofuMofu2 closed 1 year ago

MofuMofu2 commented 1 year ago

string | number のユニオン型を受け取る関数を作成し、引数が文字列の場合は文字列の長さを、数値の場合はその数値を2倍にした値を返す関数を作成してください。

MofuMofu2 commented 1 year ago

string | number のユニオン型を受け取る関数を作成し、とあるので変数は一つで string | numberをとる。 値が文字列なら文字列の長さ = lengthを返せばいいし、数値のときは * 2すればいい。

型の判別は typeof演算子を使って実行すれば良さそう。

MofuMofu2 commented 1 year ago

if 文で1条件ずつ判定しようと思ったが、そうすると当てはまるものがないときはundefinedが返る。 しかし、引数はUnion Typeでstring | numberであることが確定しているため、stringか分かれば残りはnumber型であると言える。 三項演算子で返してundefinedが推論されないようにしてみた。