中級 › switchで一部returnを書き忘れた原因と直し方 › パターン3
switchで一部returnを書き忘れた原因と直し方
union型の値をswitch文で分岐する関数で、一部のケースにしかreturnを書かないと、「関数がreturn文で終わっていない」というエラーになります。
1 type Level = { kind: "low" } | { kind: "high" }; 2 function score(l: Level): number { 3 switch (l.kind) { 4 case "low": 5 return 1; 6 _________________________________ ^ 7 } 8 } 9 console.log(score({ kind: "high" }));
main.ts(2,27): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.
空欄を埋めてコンパイルを通す
highのケースを書き忘れると、その経路でreturnされずに関数が終わってしまいます。
次の問題