数学の用語では全域性と呼ばれる code:f f = x => y 関数fの定義域xの取りうる値すべてに対応する値域yが存在することである。 全域性を持たない関数の例として代表的には割り算がよく取り上げられる。 code:divide.ts type Divide = (a:number, b: number) => number const divide: Divide = (a,b) => b !== 0 ? a/b : NaN 割る数に0は取りえないので、このdivide関数は全域性が無いことを意味する。 全域性を持たせるためには、3つのアプローチがあるとされる。 1. 定義域にデフォルト値を返す。 2. 戻り値にエラーケースを含める。 3. 引数(定義域)を全域性担保できる範囲に限定する。 1はこれが出来る場合と出来ない場合がある。上記例のように割り算の場合、どんな数字をデフォルト
![Totality - kawasima](https://cdn-ak-scissors.b.st-hatena.com/image/square/39537f95532637719d918bc21a4b185e796849df/height=288;version=1;width=512/https%3A%2F%2Fpbs.twimg.com%2Fmedia%2FFoB11oQacAAkvSC.png)