Расширение протокола ограниченного словаря
Я пытаюсь заставить определенный тип словаря соответствовать протоколу.
typealias FirebaseDictionary = Dictionary<String, FirebaseValue>
Я хотел бы иметь соответствие FirebaseValue
протокол
protocol FirebaseValue {
// stuff here
}
Я пробовал это
extension FirebaseDictionary: FirebaseValue {
}
но я получил ошибку Constrained extension must be declared on the unspecialized generic type 'Dictionary' with constraints specified by a 'where' clause
, Так что теперь у меня есть это
extension Dictionary where Key == String, Value == FirebaseValue {
}
но я не могу понять правильный синтаксис, чтобы привести его в соответствие с протоколом, если это вообще возможно. Если это невозможно, есть ли другой способ добиться того же эффекта? Я пытаюсь разрешить в свойствах только определенные типы и легко различать, что это за типы при обратном чтении.
Этот вопрос был задан, но не получил окончательного ответа, и он мог измениться независимо
0 ответов
Начиная с Swift 4.2 вы можете сделать это с:
extension Dictionary : FirebaseValue where Key == String, Value == FirebaseValue {
}