以下はちゃんと管理されているプロジェクトでは、こんなことはあまり起こらないだろうなという内容です。部分をこのように定義して使ったりすることが多いです。any}[];}オブジェクト部分なども直で書いてます。voidのようにしても問題はあまりないですが、できれば先程定義したStateから使いたいです。型は子プロパティ名で絞り込んでいくことができます。any}[]はState['values']とも書くことができます。ここで「[]はどうすれば取り払えるんだろう」と頭をひねりました。それはすぐ解決することができました。以下のように定義したものとほぼ同じです。numberなプロパティ名ならプロパティへのアクセスが許可されるようになります。numberな型を指定することで、さらに絞ることができるということになります。以下のような絞り込み方法があります。any}[][]となってしまうので注意です。