TypeScript 4.8 から変わる unknown の動き

unknown はすべての型を包括しています。

そして、{} は null と undefined 以外のすべての型を指します。

つまり、null | undefined | {} はすべての型を指すので理論上は unknown です。

しかし、以下のように unknown を null | undefined | {} へ割り当てようとすると、これまではエラーになりました。

const myFunc = (x: unknown) => {
    const a: null | undefined | {} = x
}

しかし、4.8 以降はこれがエラーになりません。

unknown の型がより直感的になります。

ただ、そこまで使いどころはないんじゃないかなと思っています。