TypeScript JavaScript undefinedやnullチェックについて

Array.prototype.find は undefined を返す可能性がありますが、必ずundefined以外の値が変えることを期待したいことがあります。(配列の中に、探したいものが必ずあるケース)

この場合は、findがundefinedを返した場合はエラーをthrowするという共通処理を考えます。

// 引数がundefinedもしくはnullならエラーをthrowする関数
const ensure = function<T>(arg: T | undefined | null){
    if(arg === undefined || arg === null) throw new Error('arg is undefined unexpectedly')
    return arg
}

//使い方
const data = [
    {label: 'AAA', value: 1}, 
    {label: 'BBB', value: 2}, 
    {label: 'CCC', value: 3}, 
]
const result = ensure(data.find(d => d.value === 4)).label // エラーがthrowされる arg is undefined unexpectedly