Typealias
typealias for closures with parameters
typealias SuccessHandler = (NSURLSessionDataTask, AnyObject?) -> Void
This code block creates a type alias named SuccessHandler
, just in the same way var string = ""
creates a variable with the name string
.
Now whenever you use SuccessHandler
, for example:
func example(_ handler: SuccessHandler) {}
You are essentilly writing:
func example(_ handler: (NSURLSessionDataTask, AnyObject?) -> Void) {}
typealias for empty closures
typealias Handler = () -> Void
typealias Handler = () -> ()
This block creates a type alias that works as a Void to Void function (takes in no parameters and returns nothing).
Here is a usage example:
var func: Handler?
func = {}
typealias for other types
typealias Number = NSNumber
You can also use a type alias to give a type another name to make it easier to remember, or make your code more elegant.
typealias for Tuples
typealias PersonTuple = (name: String, age: Int, address: String)
And this can be used as:
func getPerson(for name: String) -> PersonTuple {
//fetch from db, etc
return ("name", 45, "address")
}