Я работаю с библиотекой, которая определяет два протокола A
и B
, каждый со своим associatedtype
T
, например:
protocol A {
associatedtype T
}
protocol B {
associatedtype T
}
Два протокола не связаны на T, и поэтому теоретически третий протокол может наследоваться от A
и B
, typealias
каждого T
, для другого типа. К сожалению, я не могу заставить Свифта провести различие между двумя T
с. Я пробовал что-то вроде:
protocol C: A, B {
typealias A.T = String
typealias B.T = String
}
но это не поддерживаемый синтаксис.
Есть ли способ обойти это?