Specializing generics with type aliases
Discover page 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 {
...
}