---
title: 関数の戻り値の型Void型とNever型について
tags: 
author: [Katsushi21](https://www.docswell.com/user/Katsushi21)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/5EGX2R92JL.jpg?width=480
description: 関数の戻り値の型Void型とNever型について by Katsushi21
published: January 17, 24
canonical: https://www.docswell.com/s/Katsushi21/5W16P1-2024-01-17-235950
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/5EGX2R92JL.jpg)

1/6
関数の戻り値の型
Void型とNever型について


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4JQ8PVW97P.jpg)

Void型とNever型
Void型：何も返さない関数の戻り値の型
Never型：関数の戻り値がない場合の戻り値の型
2/6


# Page. 3

![Page Image](https://bcdn.docswell.com/page/K742YM1RJ1.jpg)

3/6
Void型について
・その関数に戻り値が存在しないことを示す
・undefinedをreturnすることができる
戻り値が存在しないため、
問題なく実行可能
戻り値を指定すると
エラーが発生する
undefinedをreturn可能


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LJ1M68GVEG.jpg)

4/6
Never型について
・その関数に戻り値が絶対に存在し得ないことを示す
・何もreturnすることができない(undefinedも不可)
・その関数が最後まで処理されず、何も戻らないことを明示する
途中でエラーがthrowされるため、
最後まで実行されない
無限ループするため、処理が終わらない
如何なる戻り値も設定不可


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GJW3WZK3J2.jpg)

なぜNever型が必要とされるのか
①. returnが省略された関数は、自動的にundefinedが戻り値になる
つまり、戻り値の型はVoid​型になる
②. データフロー解析の設計上、bottom型を確実に表現したい
bottom型は簡潔に表現すると空集合のこと
値や型がなにも存在しないことを示す型として、
Never型を宣言する手法が静的型付け言語に取り入れられた
5/6


# Page. 6

![Page Image](https://bcdn.docswell.com/page/4EZV51ZGJ3.jpg)

なぜNever型を取り上げたか
近々リリースされるPHP8.1に、関数の戻り値の型にNever型を
指定できる機能が追加されるから
昨今の静的型付けブームに、PHPも乗っていくのか？
6/6


