Обобщённые typealias: имена для уродливых типов 👽

🔥 typealias в Swift умеет принимать параметры типа и ограничения — и превращать нечитаемый вложенный дженерик в слово из предметной области. Сразу к точности: это SE-0048, Swift 3. Не новинка, просто недоиспользуемая возможность. Забавная деталь для педантов: и пропозал, и Language Guide утверждают, что алиас не может вводить дополнительные ограничения, — но в исходниках самой книги стоит пометка, что компилятор этого не проверяет. where-клаузы тоже принимаются, хотя в грамматике TSPL их нет.

⚠️ И важное про протоколы. typealias внутри протокола — это конкретный алиас, а не точка кастомизации. Реализующий тип его не переопределяет. Если нужна кастомизация — это associatedtype. Ещё: необобщённый typealias не может нести where-клаузу.

#Swift #Generics #APIDesign #CleanCode #iOSDevelopment

Обобщённые typealias: имена для уродливых типов 👽 | Сетка — социальная сеть от hh.ru