🐈

{[key: string]: any}はany[]も受け取る

2021/05/30に公開

挙動を確認した限りではそうらしい。
こう書いてもエラーとはみなされない。中身に興味はないが配列になっていることまでは想定していないときに困る。

function foo(arg: {[key: string]: any}) {
  console.log(arg)
}

foo({ abc: 1 }) // OK
foo(['abc']) // OK

unknownを使っておくと配列は弾いてくれる。

function foo(arg: {[key: string]: unknown}) {
  console.log(arg)
}

foo({ abc: 1 }) // OK
foo(['abc']) // NG

Discussion