typealias ItemClosure<T> = ((T) -> Void)
typealias OptionalItemClosure<T> = ((T?) -> Void)
typealias VoidClosure = (() -> Void)
Удобное использование блоков замыкания с возвращаемыми типами и без.
Например, чтобы вернуть вам какое-то значение из функции вы можете использовать их следующем образом:
func getData(completion: ItemClosure<String>)
И
вызывать:getData { string in
// print(string)
}
Собственно, ItemClosure - для неопциональных типов, OptionalItemClosure - для опциональных, а VoidClosure - для пустой функции