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