Cursos / Jogos Digitais / Programação Orientada a Objetos / Aula

arrow_back Aula 09 - Classes Abstratas e Interfaces

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

Descrição imagem

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

Descrição imagem


Versão 5.3 - Todos os Direitos reservados