Typealias: Apelidando tipos

Vamos entender o que são os Type alias e como usá-los.

O que é Type alias?

Você deve conhecer tipos de dados como Int, Float, Bool, String etc. Nós os usamos para representar os mais variados dados dentro dos nossos aplicativos. Uma String pode servir para representar o nome de um usuário, um Float para representar o valor de algumn produto e por ai vai.

Type alias nada mais são que apelidos para tipos de dados, literalmente: type = tipo, alias = apelido.

Pra que serve?

O principal motivo para usar Type alias, é que eles aumentam consideravelmente a legibilidade do código, uma vez que é possivel usar o apelido daquele dado, no lugar do tipo original.

É bom notar que Typealias não criam novos tipos de dados, eles são apenas uma outra forma de chamar um mesmo tipo.

Como usar?

Nós podemos usar Type alias na maioria dos tipos, desde os tipos primitivos como Int, Float, String, como também em classes, strutcs e enums. E até em closures.

Para usar um Type alias basta usar a seguinte síntaxe:

typealias apelido = tipo de dado existente 

Exemplos:

Para ficar mais claro, vamos ver alguns exemplos.

Tipo Primitivo

Digamos que nós temos uma função que recebe o nome de um produto e retorna o preço:

func mostraPreço(item: String) -> Float {
	//Código aqui
}

Usando Type alias podemos ter uma legibilidade muito maior, de modo que até uma pessoa leiga conseguiria entender com mais facilidade. Nosso código ficaria assim:

typealias Produto = String
typealias PreçoReal = Float
    
func mostraPreço(item: Produto) -> PreçoReal {
	//Código aqui
}
Combinando Protocolos

Outra utilização interessante de Type alias é a combinação de protocolos. Podemos criar um Type alias para usar mais de um protocolo com um único nome. Digamos que nós temos uma estrutura que representa uma pessoa, e essa estrutura implementa protocolos de suas ocupações.

protocol Estudante {
    //Código aqui
}
protocol Desenvolvedor {
    //Código aqui
}
    
struct Pessoa: Estudante, Desenvolvedor {
    var nome: String
}

Combinando protocolos diferentes num único nome, podemos criar um nome personalizado para quando um objeto, no nosso caso uma struct, implementa dois protocolos específicos. Por exemplo:

protocol Estudante {
    //Código aqui
}
protocol Desenvolvedor {
    //Código aqui
}
    
typealias DevIOS = Estudante & Desenvolvedor
    
struct Pessoa: DevIOS {
    var nome: String
}

Usando o Type alias estamos dizendo que uma pessoa que implementa os protocolos Estudante e Desenvolvedor pode ser chamado de DevIOS.

Clousure

Outra utilização interessante do Type alias é em clousures.

Digamos que nós temos uma função genérica que recebe uma clousure como parâmetro, no nosso caso, a clousure recebo um Int e retorna uma String:

func MetodoGenerico(completation: (Int)->(String)) {
   //Código aqui
}

Para facilitar a leitura podemos criar um apelido para nos referir a uma clousure dentro de uma função, e assim, facilitar bastante a sua leitura.

typealias Sucesso = (Int) -> (String)
    
func MetodoGenerico(completation: Sucesso) {
   //Código aqui
}

👋🏼 Isso é tudo pessoal

Agora que você já sabe o que é e como usar Type alias, garanto que conseguirá criar códigos muito mais legíveis, e consequentemente com mais qualidade. Espero ter ajudado e até a próxima.