2024-08-01
Object型で特定のプロパティのみを動的に必須にする方法
結論
以下の型定義を利用します。
使用例
解説
上記のSingleKeyObject型は以下の機能を組み合わせて、実装されています。
- Generics
- Type Operator
- Utility Types
- Indexed Access Types
- Mapped Types
- Conditional Types
- in Keyword
知らない機能があったら、ChatGPTで調べましょう!
ネストが深いので、細かい部分から解説します。
スケール小
最初はこのスケールで読んでいきます。
の場合
となり、in keywordとMapped Typesによって複数キーとして展開されます。
これがスケール小の型定義の実態となります。
スケール中
さらにスケールを大きくして読んでみます。
同じように、Mapped Typesを読み解くと以下のようになります。
スケール大
最後に、型定義全体を読んでみます。
3行目でIndexed Access Typesとkeyofを併用しています。
この部分は、Tのキーをユニオン型として展開して、それぞれのキーの値を取得するような動きをします。
これで完成です。🎉
最初の例ではこの型定義が動的に生成されていました。
まとめ
今回は「Object型で特定のプロパティのみを動的に必須にする方法」を紹介しました。
利用できるシーンでどんどん採用していきましょう!
Happy Coding!!👍
© 2024 Both Arms. All Rights Reserved.