传递 Codable 结构时无法推断通用参数 'T'

Generic parameter 'T' could not be inferred when passing Codable struct

请先看一下代码以便更好地理解。

func getType<T: Decodable>(urlString: String, header: HTTPHeaders, completion: @escaping (T?) -> Void){

}

let networkManager = DataManager()

 networkManager.getType(urlString: kGetMyDayTaskDetails + strId, header: header) { (MyDayAndTaskDetails) in

}

错误:

Generic parameter 'T' could not be inferred

我正在尝试使用泛型将结构作为参数传递,以使用 api 调用的通用方法。但不知道如何正确调用。请指导。

考虑闭包中的参数是一个实例,而不是类型。比如像

networkManager.getType(urlString: kGetMyDayTaskDetails + strId, 
                          header: header) { details in

}

要指定通用类型,请对其进行注释,并且根据签名,它必须是可选的

networkManager.getType(urlString: kGetMyDayTaskDetails + strId, 
                          header: header) { (details : MyDayAndTaskDetails?) in 

}