오늘은 typeAlias에 대해서 알아보자.
공식 문서를 먼저 살펴보자.
(출처: https://developer.apple.com/documentation/coreservices/typealias)
엄청 간단하게 나와있다.
Alias는 별명이라고 한다.
그렇다면 typeAlias는 타입 별명이라고 할 수 있을거 같다.
Swift를 공부할때 처음 typeAlias
를 접했다.
근데 이게 굳이 필요하나..? 라는 생각이 컸다.
우선 어떤 식으로 사용할 수 있는지 가장 기초적이고 쉬운 예제를 한 번 봐보자.
typealias name = String
let personName: name = "wonhee"
print(personName)
// 출력: wonhee
String
타입에 name
이라는 별명을 지어줬다.
personName은 name
이라는 타입을 갖는다.
name
은 String
타입의 별명이므로 personName은 String
타입을 가질 수 있다.
프로젝트를 진행하면서 typealias
에 관한 아래의 코드리뷰를 받은 적 있다.
레시피 인스턴스 에게 레시피를 요청하니 딕셔너리 타입이 반환되는 형태인 것 같아요. 혹시 typealias 에 대해서 아시나요?
typealias JuiceRecipe = [FruitsType : Int]
이런 형태의 코드도 가능할 수 있습니다.
FruitsType
은 아래와 같이 내가 선언한 타입이다.
enum FruitsType {
case banana
case apple
}
리뷰 받은대로 내가 선언한 타입도 typealias
로 선언할 수 있다.
내가 받았던건 아니지만 왜 Double
타입이 아닌 TimeInterval
을 썼냐는 리뷰를 받은적 있다.
이전까지는 TimeInterval
에 대해서 깊게 생각해보지 않았는데 이번 기회에 다시 봐봤다.
공식 문서를 확인해봤다.
(출처: https://developer.apple.com/documentation/foundation/timeinterval)
TimeInterval
은 typeAlias
였다...❗️
오늘은 typeAlias에 대해서 알아봤다.
처음 typeAlias에 대해서 봤을때는 굳이 이렇게 써야하나? 싶었는데
여러 군데에서 접하다보니 잘 쓰면 좀 더 명확하게 타입을 표현할 수 있을거 같다.
그럼 이만👋