Kotlin

Kotlin Type aliases

최데브 2022. 7. 10. 13:50

공부를 하던중 typealiases 라는 키워드를 알게됐다.

 

코틀린에서 typealiases 는 긴 제너릭 타입을 사용하는 변수들에 대한 새로운 별명을 지어주는 키워드다.크게 엄청난 역할을 하는것은 아니고 짧게 별칭으로 쓸 수 있게 바꿔주는 용도 정도로 생각하면 좋을 거 같다.

 

typealias DataBaseUseCase = BaseUseCase<Data, Flow<UiState<Data>>>

이렇게 적어주면 

class DatatUseCase @Inject constructor(private val repo: DataRepository) :
    BaseUseCase<Data, Flow<UiState<Data>>>

이렇게 됐어야하는게

class DatatUseCase @Inject constructor(private val repo: DataRepository) :
    DataBaseUseCase

이런식으로  적어 줄 수 있게 되는것이다.

 

클래스에서 

class User {
  inner class Name {}
}

class User {
  inner class Info {}
}

typealias UserName = User.Name
typealias UserInfo = User.Info

이렇게 적어줄수도 있게 된다.

 

 

그럼 그냥 저렇게 막 사용해도 될까?

아니다. 

typealias 는 Top Level 로만 정의 할 수 있고 클래스 내부나 함수 내에는 적을 수 없다.Top Level  이기에 public 으로만 선언된다.

그렇기에 너무 남발해서 사용하면 누구나 접근 할 수 있는 코드가 되어버리기 때문에 복잡해질 수 있다.

 

 

 

 

 

반응형

'Kotlin' 카테고리의 다른 글

lateinit 과 lazy의 차이점  (0) 2022.03.15
DeciamlFormat 으로 숫자 천단위로 콤마 넣기  (0) 2021.10.07
람다식에서 return 사용하기  (0) 2021.05.02
Java Kotlin 차이점  (0) 2021.05.01
코틀린 커스텀 다이얼로그  (0) 2021.04.25