TypeScript {}型は一体なんなのか

たまに見る {} は、空のオブジェクトのようなので object 型と同じようなものかと思いきや、実は直感とは違う動きをするので注意です。

実際は null と undefined を除いたすべての型を入れることができます。

let a: {}
a = {hoge: 'hoge'}
a = {}
a = 123
a = 'tami'
a = ['tami']
a = null //error
a = undefined //error

any と同じように、いろいろな型をいれることができてしまうため、あまり使わない方が良いようです。