Support using inherited interfaces in Hub<T>

#3311
nit: array type can be inferred