사용 목적
- 길어져서 가독성이 떨어지는 코드를 간결하게 하기 위함
사용 가능 범위
- 자료형
- 프로토콜
- 클래스
- 스트럭트
- 클로저
- etc
자료형
typealias Friends = [Friend]()
var myArray = Friends()
프로토콜
protocol Naming{
var name: String
func getName()->String
}
protocol Aging{
var age: Int
func getAge()->Int
}
typealias Friendable = Naming & Aging
스트럭트(클래스도 동일)
struct Friend : Friendable{
var name: String
var age: Int
func getName()->String{
return self.name
}
func getAge()->Int{
return self.Age
}
}
typealias NewFriend = Friend
var newFriend = NewFriend()
클로저
typealias StringBlock = (String)->Void
func sayHi(completion: StringBlock){
print("안녕하세요?")
completion("오늘도 빡코딩 하고 계신가요?")
}
sayHi(completion: {result in print(result)})
enum
class Animal{
enum AnimalType{
case DOG
case CAT
case BEAR
}
var type: AnimalType
..(생략)
}
typealias AnimalType = Animal.AnimalType
var animal = Animal()
animal.type = AnimalType.DOG