Расширение typealias с протоколом - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть ответ json и класс модели, как показано ниже

[
  {
    "id": "1"
  },
  {
    "id": "2"
  }
]

Модель

typealias ModelA = [ModelElement]

class ModelElement: Codable {
    let id: String?

    init(id: String?) {
        self.id = id
    }
}

Я хочу расширить ModelA (это typealias) протоколом.

protocol ModelProtocol {

}

Мое требование заключается в том, чтобы при декодировании json и отправке обратно я хотел иметь общее замыкание (как показано ниже) для всей сигнатуры функции запроса вместо отдельного типа замыкания для каждого обратного вызова API

typealias Callback = (ModelProtocol?) -> Void

Но я не могу продлить typealias.Это дает ошибку.

И этот ответ также бесполезен

Как мне добиться наличия общего протокола для всех моделей и типов (когда json начинается с массива)?

Если нет typealias, есть ли другой способ достичь вышеупомянутого требования?

...