Обобщения могут решить эту проблему.
Сначала введите параметр общего типа:
func networkRequest<T: Decodable>(MethodType:Type, url:String)
^^^^^^^^^^^^^^
Теперь вы можете использовать T.self
для типа для декодирования:
try JSONDecoder().decode(T.self, from: data)
Кроме того, вы можете рассмотреть возможность добавления обработчика завершения, иначе полученное вами значение будет потеряно:
func networkRequest<T: Decodable>(MethodType:Type, url:String, completionHandler: (T) -> Void)
Использование:
networkRequest(MethodType: .GET, url: ...) {
(myStuff: MyType) in
...
}