Swift Typealias – Make Your Code Understandable

In Swift, a typealias is an alias for an existing type.

Using type alias in a strategic way can make your code more readable and understandable.

To declare a new typealias in your project, just use this syntax:

typealias NewType = ExistingType
Typealias in Swift

Next up, I will show you some real-life use cases for typealiases in your Swift program.

By the way, if you want to watch a short video about this topic, look no further:


Typealias Examples

Let’s say you’re dealing with weights in your code. These weights are essentially just doubles. What is really cool about typealiases is you can create an alias Weight that is actually Double under the hood:

typealias Weight = Double


Now you can use Weight instead of Double:

let mass1: Weight = 152.3
let mass2: Weight = 43.2

print(mass1 + mass2)

Write an Extension for a Typealias

Writing an extension for a typealias also extends the underlying type. For example, assuming that the Weight is in kilos, let’s create an extension toPounds() for the Weight alias:

typealias Weight = Double

extension Weight {
    func toPounds() -> Weight {
        return self * 2.205
    }
}

let mass: Weight = 100
print(mass.toPounds())

// The extension affects Doubles too:
let massDoubles: Double = 120
print(massDoubles.toPounds())



Output:

220.5
264.6


As you can see, both Double and Weight instances now have the toPouds() conversion.

Combine Protocols using Typealias

Assume you have two access protocols for reading and writing students’ grades:

protocol ReadAccess {}
protocol WriteAccess {}


Your teacher should be able to both read and write grades. Using typealias, you can neatly combine these two protocols to create a new protocol dedicated to teacher admins only:

typealias AdminAccess = ReadAccess & WriteAccess
struct Teacher: AdminAccess {}


Closures and Typealias

Let’s say we have a simple method that takes a closure as its input:

func method(operation: (Double) -> (Double)) {}


You can now create a typealias for the (Double) -> (Double) function type to highlight that it is a math operation:

typealias MathOperation = (Double) -> (Double)


Now the method can be updated to use this typealias in its argument’s type:

func method(operation: MathOperation) {}

Conclusion

Typealias is just an alias to an existing type. The main goal of typealiases is to make code more readable and understandable. As an example, here is a typealias Weight that essentially is just a Double:

typealias Weight = Double


Thanks for reading. I hope you find it useful.

Further Reading

Swift—Upgrade Your Skills with These 5 Tips

iOS Development Tips in 2021

Leave a Comment

Your email address will not be published. Required fields are marked *