Apelidos de Tipos
Dê nomes a tipos complexos
Apelidos de Tipos é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.
O que é um alias de tipo
Um alias de tipo dá um novo nome a um tipo existente. Ele não introduz um novo tipo — é apenas uma ferramenta de legibilidade resolvida em tempo de compilação.
Você declara um alias com a palavra-chave typealias.
typealias Name = String
fun main() {
val n: Name = "Alice"
println(n)
}Dando nomes a tipos de função
Os tipos de função podem ser extensos. Um alias torna as assinaturas muito mais fáceis de ler.
typealias Handler = (String) -> Unit
fun register(h: Handler) {
h("event fired")
}
fun main() {
register { msg -> println(msg) }
}Dando nomes a tipos genéricos
Tipos genéricos profundamente aninhados, como Map<String, List<Int>>, ficam mais fáceis de ler com um alias.
typealias ScoreBoard = Map<String, List<Int>>
fun main() {
val board: ScoreBoard = mapOf("team1" to listOf(10, 20))
println(board)
}Aliases são transparentes
Como um alias é o mesmo tipo, os valores são totalmente intercambiáveis. Name e String podem ser misturados livremente, sem conversão.
typealias Name = String
fun shout(s: String) = s.uppercase()
fun main() {
val n: Name = "bob"
println(shout(n))
}Aliases parametrizados
Um alias de tipo pode ter seus próprios parâmetros de tipo, repassando-os ao tipo subjacente.
typealias Pairs<T> = List<Pair<T, T>>
fun main() {
val data: Pairs<Int> = listOf(1 to 2, 3 to 4)
println(data)
}Criando alias para classes aninhadas
Um caminho longo para uma classe aninhada ou interna pode receber um alias curto, reduzindo o excesso e a desorganização dos imports.
class Outer {
class Inner {
fun hello() = "inner hello"
}
}
typealias Shortcut = Outer.Inner
fun main() {
println(Shortcut().hello())
}Melhorando a legibilidade do domínio
Os aliases comunicam a intenção. typealias UserId = Int documenta que um inteiro representa a identidade de um usuário, embora o compilador ainda o trate como Int.
typealias UserId = Int
typealias Email = String
fun notify(id: UserId, to: Email) {
println("Notify user " + id + " at " + to)
}
fun main() {
notify(42, "a@b.com")
}Nenhuma segurança de tipos adicional
Esteja ciente: como os aliases são transparentes, o compilador não impedirá que você passe um UserId onde se espera um alias diferente de Int. Eles servem como documentação, não como mecanismo de imposição.
typealias UserId = Int
typealias OrderId = Int
fun process(order: OrderId) = println("order " + order)
fun main() {
val user: UserId = 5
process(user) // compiles fine — both are Int
}Apenas no nível superior
Os aliases de tipo devem ser declarados no nível superior de um arquivo. Você não pode defini-los dentro de funções ou classes. Coloque-os próximos ao código relacionado ou em um arquivo dedicado.
typealias Callback = () -> Unit
fun run(cb: Callback) = cb()
fun main() {
run { println("done") }
}Quando usar aliases
Prefira aliases de tipo quando:
- Um tipo de função ou genérico for longo e repetido
- Você quiser nomes autoexplicativos para tipos primitivos
- Precisar de uma forma curta para um tipo aninhado
Quando precisar de segurança de tipos real, use uma classe de valor.
Alias versus classe de valor
Um alias é o mesmo tipo com um novo nome — segurança zero. Uma classe de valor é um tipo distinto que impede a mistura de valores. A próxima lição aborda classes de valor.
Verificação rápida
Teste sua compreensão sobre aliases de tipo.
Recapitulação
Você aprendeu sobre aliases de tipo:
- Declarados com
typealiasno nível superior - Apenas um novo nome, totalmente transparente
- Ótimos para tipos de função, genéricos e legibilidade
- Não adicionam segurança de tipos
Em seguida: classes de valor embutidas para encapsulamento sem custo adicional.
Perguntas Frequentes
A aula “Apelidos de Tipos” é grátis?
Sim — o texto completo de “Apelidos de Tipos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.
O que vou aprender em “Apelidos de Tipos”?
Dê nomes a tipos complexos Você pratica Kotlin Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Kotlin Academy?
Nenhuma experiência prévia é necessária. Kotlin Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Apelidos de Tipos”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Kotlin Academy?
Sim. Cada aula de Kotlin Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Apelidos de Tipos
- Classes de Valor Embutidas
- Casos de Uso
- Limitações