기존에 존재하는 데이터 타입에 새로운 이름을 붙일 수 있는 기능이다.
typealias 가 정의되면
프로그램에 존재하는 타입을 대신하여 다른 이름을 사용할 수 있다.
새로운 타입을 생성하는 것이 아니라
원래 존재하는 타입의 이름을 바꾸는 '치환' 개념이다.
코드를 더 읽기 쉽고 명확하게 만드는 것이 목적인 기능이다.
Swift 에서는 typealias 를 대부분의 유형에 사용이 가능하고
크게 3가지 유형으로 나눠볼 수 있다.
typealias Name = String
Strint 타입을 Name 이라는 별칭으로 사용한다고 선언하였다.
let name: Name = "eugenie"
위에서 선언하였던 Name 이라는 별칭을 활용했다.
let name: String = "eugenie" 와 동일한 내용이다.
class Student {
}
student 라는 클래스를 선언하였다.
typealias Students = [Student]
위에서 선언한 student 라는 클래스를
Students 라는 Student 배열로 선안한다.
var students: Students = []
students 라는 변수를 Stucents 타입으로 초기화한다.
Students 라는 타입은
Array<Student>, [Student] 와 같다.
func test(completeHandler: (Void) -> (Void)) {
}
typealias voidHandler = (void) -> (Void)
함수 test 에 completeHandler 라는 클로저를 선언하고
voidHandler 라는 별칭을 선언해주었다.
func test(completeHandler: voidHandler) {
}
위와 같이 클로저를 좀 더 깔끔하게 사용할 수 있다.
🍎 cf. AssociatedType
타입을 대신(지정) 해서 사용할 수 있다.
Equatable을 준수하는 곳에서만 사용될 수 있으며 프로토콜에서 사용된다.
📚 Reference
[Swift] typealias
[Swift] Typealias