protocol Component {} struct Container { let map: [Component: Component] }
В приведенном выше коде, как я могу указать, что ключи map могут содержать любые типы Component s, которые также Hashable?
map
Component
Hashable
Попробуйте код
protocol Component {} struct Container<T: Hashable & Component> { let map: [T: Component] }
Или
protocol Component {} struct Container<T> where T: Hashable, T: Component { let map: [T: Component] }