Вы не можете ограничить событие универсальным типом для одного единственного типа:
// error: Same-type requirement makes generic parameter 'T' non-generic
func myFunction<T>(_ dict: [String: T]) where T == String {
}
Возможно, вам нужна некоторая перегрузка вашей функции для ваших типов:
func myFunction(_ dict: [String: String]) {
print("String")
}
func myFunction(_ dict: [String: Bool]) {
print("Bool")
}
let strings = ["a": "b"]
let bools = ["a": false]
myFunction(strings) // print String
myFunction(bools) // print Bool