공부를 하던중 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 |