개발새발 - IT 기술블로그

안녕하세요. 이번 포스팅에서는 코틀린의 typealias에 대해 알아보겠습니다.

 

 

코틀린의 typealias 키워드를 직역해보면 <type : 유형> <alias: 별칭> 입니다. 

 

말 그대로 타입(유형)에 별명을 지어주는 것인데요.

 

공식문서를 참고하거나  Kotlin Weekly를 참고해보면, typealias는 타입의 이름이 너무 길거나 중복되는 경우 좀 더 읽기 쉬운 이름으로 변경하기 위해 사용한다고 합니다.

 

 

예를 들어, 아래와 같이 변수를 생성한다고 한다고 할 때..벌써부터 머리가 어지럽습니다.

var type: LiveData<MutableStateFlow<ArrayList<String>>>

 

 

만약 변수가 아니라 함수나 데이터 클래스에 중복되어서 들어간다고하면 정신이 혼미해지죠

data class Type(val name: LiveData<MutableStateFlow<ArrayList<String>>>, val value: LiveData<MutableStateFlow<ArrayList<String>>>)

 

 

그 때, 우리는 제너릭 타입의 typealias 변수로 이를 해결할 수 있습니다.

typealias typeArray = ArrayList<String>
typealias typeFlow = MutableStateFlow<typeArray>

class TypeAliasClass {
    lateinit var type: LiveData<typeFlow>
    ...
}
data class Type(val name: LiveData<typeFlow>, val value: LiveData<typeFlow>)

※ 참고로 typealias는 파일 최상단에 선언되어야 합니다.

 

 

또한, Inner Class에도 접근이 가능합니다. 

(공식문서 출처)

class A {
    inner class Inner
}
class B {
    inner class Inner
}

typealias AInner = A.Inner
typealias BInner = B.Inner

 

이렇게 typealias로 코드의 가독성을 증진시키는 방법을 알아보았습니다.

 

감사합니다.

 

 

 

출처 

https://kotlinlang.org/docs/type-aliases.html

 

Type aliases | Kotlin

 

kotlinlang.org

https://proandroiddev.com/getting-better-with-kotlin-exploring-advanced-features-and-effective-coding-strategies-c145b388481e

 

Getting Better with Kotlin — Exploring Advanced Features and Effective Coding Strategies

Enhancing Your Kotlin Codebase with Lesser-Known Gems and Smart Techniques

proandroiddev.com