■目次

関数で使われる特別な型2種類

void

**return文を持たない関数の戻り値(何かの値を返すわけではない)**の場合に使う

<aside> 🌿 とにかく、stringnumberbooleanといった、決まった型を返さないときにはvoidを使えばOK!

</aside>

▼例

/**
* console.logのほかに、alertを出すだけの関数でもvoidが使われる
*/

const logMessage = (message: string)**: void** => {
	console.log("Function basic sample 1:", message);
}

never

決して戻ることのない関数の戻り値の場合に使う

<aside> 🌿 例のように、そこで一連の処理が終わってしまう=決して戻ることはない場合に使える

</aside>

▼例

/**
* throw文の他に、while文(ずっとループし続ける処理)でも使える ※あまり使わないらしい
* 
* 1. throw ~ で、ユーザー定義の例外を発生させる(例外を投げる)。
*    現在の関数の実行は停止し(**throwの後の文は実行されない**)、コールスタック内の
*    最初のcatchブロックに制御を移す。
*    呼び出し元の関数にcatchブロックが存在しない場合は、プログラムが終了する。
*    ▼ MDN
*    <https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/throw>
* 
* 2. Error()はエラーオブジェクトで、実行時エラーが発生した場合に生成される。
* 
* 3. throw new Error()で、実行時エラーが発生した場合に、新しいErrorオブジェクトが生成および
*    投げられる
*    ▼MDN
*    <https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Error>
*/

const alwaysThrowError = (message: string)**: never** => {
	throw new Error(message);
}