TypeScript インデックスシグネチャについて

インデックスシグネチャを使用することで明示的に宣言したオブジェクトのキー以外で、型を宣言することができます。

type Hoge = {
    id: number
    [key: number]: string
}

Hoge型はidというプロパティを持ち、その型numberです。

加えて、キーがnumberでその値がstringであるプロパティを持ちます。

a = {
    id: 100,
    123: 123
} //エラー

a = {
    id: 100,
    123: '123'
} //OK