interface or class type
T if it is an interface. If T is a class, interface it implements.
interface I1 { } class A : I1 { } interface I2 { } class B : I1, I2 { } static assert (is(baseInterface!I1 == I1)); static assert (is(baseInterface!A == I1)); static assert (!is(typeof(baseInterface!B)));
Deduces single base interface for a type. Multiple interfaces will result in compile-time error.