Вот метод, который работал для меня, чтобы «частично применить параметры типа»:
У меня была такая функция, как
def foo[A, B, C, D, E](...)
Так что мне нужно было указать только один параметр типа длякомпилятор, чтобы вывести остальное.Это сработало для меня:
object InferType {
type InferType[A] = Option[A]
def apply[A]: Option[A] = None
}
Обновление foo для получения дополнительного параметра типа InferType:
// t parameter is unused in implementation but
// is used by compiler to infer other type parameters
def foo[A, B, C, D, E](..., t: InferType[D])
Использование:
foo(..., InferType[ConcreteD])