Code Fix

中級 › 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'.

空欄を埋めてコンパイルを通す

広告
広告スロット(未設定)

switchで一部returnを書き忘れた原因と直し方

TypeScriptはunion型の全パターンをたどって、返し忘れがないかを検査します。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)