TypeScriptでは、型レベル計算を用いて関数型から引数の型や返り値の型を取り出すことができます。この操作を簡単に行うためのParametersやReturnTypeという組み込み型も用意されています。 しかし、オーバーロードされた関数型の場合は普通のやり方が通用しません。そこで、この記事ではオーバーロードされた関数型から引数の型や返り値の型を取り出す方法を解説します。 復習: 関数型から引数の型や返り値の型を取り出す方法 普通の関数型の場合、Conditional Typesとinferを用いることで、パターンマッチの要領で関数型からその一部分を抜き出すことができます。 type Func = (left: number, right: number) => string; // [left: number, right: number] 型 type Params = Func e