Type alias

Updated:

🔷 Type alias

protocol Naming {
	func getName() -> String
}

protocol Aging {
	func getAge() -> Int
}

// typealias 별칭을 통해 프로토콜 별명 설정이 가능
typealias Firendable = Naming & Aging

struct Friend: Firendable {
	var name: String
	var age: Int
	func getName() -> String {
		return self.name
	}
	func getAge() -> Int {
		return self.age
	}
}

// 자료형, 클래스, 스트럭트, 클로저 등
// 모든곳에 type alias 가 가능
typealias FriendName = String

var friendName : FriendName = "Jacob"

// 친구 배령을 alias 로 설정
typealias Friends = [Friend]

var myFriendsArray = Friends()

// 클러저를 StringBlock 이라는 별명으로 설정하였다
typealias StringBlock = (String) -> Void

func sayHI(completion: StringBlock) {
	print("안녕하세요~~") // 안녕하세요~
	completion("오늘 점심은 뭐 먹어요?")
}

sayHI(completion: {result in
	print("내가 할말은? : ", result) // 내가 할말은? :  오늘 점심은 뭐 먹어요?
})

🔶 Type alias class 에서 사용하기

typealias MyTpe = MyClass.My_Type

class MyClass {
	enum My_Type {
		case DOG
		case CAT
		case BIRD
	}
	var myType = My_Type.DOG
}

var myClass = MyClass()
myClass.myType = MyTpe.DOG

print("myClass.myType: ", myClass.myType) // myClass.myType:  DOG

Reference

꼼꼼한 재은 씨의 스위프트 문법편 - https://book.jacobko.info/#/book/1186710233

개발하는 정대리 스위프트 기초 문법 - 25일차 / typealias - https://www.youtube.com/watch?v=8nPQKGrpbmY&list=PLgOlaPUIbynoqbQw_erl3L2w7vfOTCtFD&index=25

Categories:

Updated:

Leave a comment