#11: ⛓ Interface
Queremos usar as habilidades do TypeScript para saber que tipo de objeto passamos como um item para o componente todo-item. Iremos ter certeza de que o item é do tipo certo. Mas o seu tipo não é uma simples string, número ou booleano. Vamos definir o tipo do item usando uma interface.
Já vimos uma interface fornecida pelo Angular: a interface
OnInitque inclui o métodongOnInit. Cada classe que implementa essa interface deve definir esse método. Caso contrário, obteremos um erro durante o tempo de compilação.Interfaces existem apenas no TypeScript e são removidas quando o código é compilado para JavaScript. Em JavaScript, não podemos impor a segurança do tipo.
Crie uma interface TodoItem em uma nova pasta chamada interfaces com o Angular CLI:
ng g i interfaces/todo-itemi é a contração para... você adivinhou - interface. Adicionando um caminho faz com que o Angular CLI gere as pastas que você indicou, se elas ainda não existirem.
Abra o arquivo recém criado src/app/interfaces/todo-item.ts:
export interface TodoItem {
}Agora, podemos definir que propriedades e/ou métodos cada objeto do tipo TodoItem deve ter. Neste ponto iremos adicionar dois membros:
titleque deve ser do tipostringcompletedque é do tipobooleane é um membro opcional
export interface TodoItem {
title: string;
completed?: boolean;
}Vamos definir o item @Input para ser do tipo que criamos. Isso vai permitir que a IDE nos sugira membros disponíveis quando usarmos o item na classe e no modelo do componente.
export class TodoItemComponent implements OnInit {
@Input() item: TodoItem;Você vai precisar importar a interface nesse arquivo.
Agora, vamos definir a lista de itens de tarefas para conter os objetos do tipo TodoItem
Novamente, será preciso importar a interface para esse arquivo.
Agora tente excluir o título (title) de um dos objetos na lista. O que acontece?
Last updated