기존에 존재하는 데이터 타입에 새로운 이름을 붙일 수 있는 기능이다.
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