Я пытаюсь расширить тип Optional
, чтобы сделать его DataConvertible
(протокол, который я объявил где-то еще в моем коде), добавляя к нему соответствие протокола, только если тип Wrapped
соответствует тому же протоколу.
Я пробовал это:
extension Optional: DataConvertible where Wrapped == DataConvertible { ... }
но затем я получаю сообщение об ошибке:
Extension of type 'Optional' with constraints cannot have an inheritance clause
Есть ли способ добиться этого с помощью текущей версии Swift?
Вот и все. Спасибо за подсказку!
Возможный дубликат stackoverflow.com/questions/44584237/…
Обратите внимание, что основная масса условных соответствий вошла в Swift 4.1, однако поддержка их приведения во время выполнения не появилась до версии 4.2.
Вам придется подождать до Swift 4.2 для условных соответствий.