仕事ですぐに使えるTypeScriptを読んでいくその32

これは

TypeScriptの学習にとても役立ちそうなドキュメントを教えてもらったので
コツコツと読んでいく記事です。

参考

著作権者:フューチャー株式会社(Future Corporation)様

future-architect.github.io

ジェネリクス

型パラメータの自動解決

TypeScriptは入力値から型推論をするようにできていて、
型の解決がすべてできるときは型パラメータの指定を省略できる。
型パラメータ同士が制約を与え合うような書き方も可能。

とはいえ推論に任せすぎると意図が伝わりにくいコードになるので、
誤解を生まないようドキュメントなどで伝えるような仕組みをつくあった方が良い。

// Tはオブジェクトの型
// Kはオブジェクトのプロパティ名のUnion Type
// Uはオブジェクトのプロパティの型
function setValue<T, K extends keyof T, U extends T[K]>(obj: T, key: K, value: U) {
    obj[key] = value;
}

今日はここまで。