Saya juga mengalami masalah ini dan saya menemukan solusi untuk kasus saya.
Pada artikel ini penulis memiliki masalah yang sama
https://www.iphonelife.com/blog/31369/swift-programming-101-generics-practical-guide
Jadi masalahnya tampaknya, kompilator perlu menyimpulkan tipe T entah bagaimana caranya. Tetapi tidak diperbolehkan untuk hanya menggunakan <type> (params ...) generik.
Biasanya, kompilator dapat mencari tipe T, dengan memindai tipe parameter karena di sinilah T digunakan dalam banyak kasus.
Dalam kasus saya itu sedikit berbeda, karena tipe kembalian dari fungsi saya adalah T. Dalam kasus Anda, tampaknya Anda belum menggunakan T sama sekali dalam fungsi Anda. Saya kira Anda baru saja menyederhanakan kode contoh.
Jadi saya memiliki fungsi berikut
func getProperty<T>( propertyID : String ) -> T
Dan dalam kasus, misalnya
getProperty<Int>("countProperty")
kompiler memberi saya kesalahan:
Tidak dapat secara eksplisit mengkhususkan fungsi generik
Jadi, untuk memberi kompiler sumber informasi lain untuk menyimpulkan jenis T, Anda harus secara eksplisit mendeklarasikan jenis variabel tempat nilai kembalian disimpan.
var value : Int = getProperty("countProperty")
Dengan cara ini kompilator mengetahui bahwa T harus berupa integer.
Jadi saya pikir secara keseluruhan itu hanya berarti bahwa jika Anda menentukan fungsi generik Anda harus setidaknya menggunakan T dalam tipe parameter Anda atau sebagai tipe kembali.