ブックマーク / zenn.dev/jiftechnify (1)

  • TypeScriptで keyof T が string | number | symbol に推論される理由の調査

    https://zenn.dev/jiftechnify/articles/2489f4103918a2 の中で問題になった、以下の挙動について理由を調べた。 Record<string, ...>型の変数に数値をキーに持つオブジェクトを代入できる keyof Tが、 Tの具体的な型が確定しない状況で string | nunber | symbolと推論される 結論からいうと、TypeScript 2.9で入った仕様だった。さらにいえば、このリリースノートに(上記の記事で紹介したものよりも遥かに単純な)対処法も載っていた…。 上記リリースノートから関連する部分を引用。 Changes include: An index type keyof T for some type T is a subtype of string | number | symbol. Given an objec

    tasshi820
    tasshi820 2023/10/04
  • 1