Specializing generics with type aliases
Basics article available: GenericsThere are so many cool ways that Swift’s type aliases can be used. Here’s an example of specializing a generic using a type alias — which can then be extended and even subclassed!
// Type aliases can be used to easily specialize generics,
// without needing to actually create any additional "real" types.
typealias ProductLoader = ModelLoader<Product>
// Equivalent to 'extension ModelLoader where Model == Product'
extension ProductLoader {
convenience init(networking: Networking) {
self.init(networking: networking,
endpoint: Endpoint.product)
}
}
// Equivalent to 'class DiscountedProductLoader: ModelLoader<Product>'
class DiscountedProductLoader: ProductLoader {
...
}
Support Swift by Sundell by checking out this sponsor:

Raycast: Take the macOS Spotlight experience to the next level: Create Jira issues, manage GitHub pull requests and control other tools with a few keystrokes. Easily automate every-day tasks and boost your developer productivity by downloading Raycast for free.