Interfaces
Conceito
Interface: é uma maneira poderosa de definir tipos e contratos em seu código.
Definição de tipos
- O transpilador do TypeScript não converte a interface em JavaScript. Ele usa interface para verificação de tipo;
- Exemplo de uso: verifica se o objeto que passamos para a função atende aos requisitos listados, ou seja, se ele é permitido;
- O verificador de tipo não exige que essas propriedades venham em qualquer tipo de ordem, apenas que as propriedades que a interface requer estejam presentes e tenham o tipo necessário.
Características
- É definida com a palavra-chave interface e pode incluir propriedades e declarações de método usando função sem detalhes de implementação;
- As interfaces não têm construtores;
- Definem apenas os membros com visibilidade públicas;
- Pode definir propriedades somente-leitura(readonly) ou opcional (?)
- Se definirmos um membro privado ou se não definirmos todos os membros obrigatórios teremos um erro;
- Interface pode herdar de outra interface;
- Permite que você copie os membros de uma interface para outra;
- Flexibiliza separar suas interfaces em componentes reutilizáveis;
- Uma interface pode estender várias interfaces, criando uma combinação de todas as interfaces.
Interface e funções
Na figura 5, você pode observar o conceito de interface sendo utilizado para definir uma função. A variável idade atual, que é do tipo CalculaIdadeAtual, só pode receber uma função que respeite o contrato estabelecido na interface.
Figura 5 - Exemplo de interface
Definição de Tipo
Na figura abaixo, na linha 189, é definida uma interface Pessoa, que tem duas propriedades e um método. Sendo assim, na linha 195, a variável p1, que é do tipo Pessoa, define um objeto com a mesma estrutura.
Figura 6 - Definição de Tipo