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 으로만 선언된다.
그렇기에 너무 남발해서 사용하면 누구나 접근 할 수 있는 코드가 되어버리기 때문에 복잡해질 수 있다.