TypeScript のちょっと気になる動作

配列の要素にアクセスした場合に、その要素の型が狭まらないことがあります。

以下が例です。

type T1 = (number | undefined)[]

const myFunc = (arr: T1, index: number) => {
    const result = arr[index] === undefined ? [] : arr[index]
    return result // number | never[] | undefined
}

result が number | never[] 期待していたのですが、実際は number | never[] | undefined でした。

原因を確認中です。