O que são Type Aliases e Como Eles Funcionam?

Na lição anterior, você aprendeu como trabalhar com tipos union. Uma forma comum de trabalhar com tipos union é usar um alias de tipo. Um alias de tipo é um nome para um tipo. Aqui está um exemplo de como fornecer um nome para um tipo união:
type ID = number | string;
Frequentemente em seus projetos, você criará aliases de tipo e os usará em todo o seu programa assim:
type ID = number | string;

type User = {
  id: ID;
  name: string;
};

function getUserId(user: User): ID {
  return user.id;
}
Este exemplo usa dois tipos chamados ID e User. ID seria um tipo união para number ou string enquanto User é um tipo objeto com propriedades id e name. O id é especificado com o tipo ID enquanto o name tem o tipo string. A getUserId função tem um parâmetro chamado user e seu tipo é User. O tipo de retorno para a getUserId função seria ID. Aliases de tipo são uma ótima forma de descrever a forma de um objeto. É comum criar tipos de objeto e usá-los em arrays assim:
type User = {
  id: number | string;
  name: string;
};

const users: User[] = [
  { id: 101, name: "Alice" },
  { id: "A102", name: "Bob" },
  { id: 103, name: "Charlie" }
];
Neste exemplo, o users array deve ser preenchido apenas com objetos User. Se você esquecer uma propriedade em um dos objetos, então o TypeScript gerará um erro como este:
type User = {
  id: number | string;
  name: string;
};

const users: User[] = [
  // Property 'name' is missing in type '{ id: number; }' but required in type 'User'.
  { id: 101 },
  { id: "A102", name: "Bob" },
  { id: 103, name: "Charlie" }
];
Você pode ter notado o uso de PascalCase quando se trata de nomear os aliases de tipo. Isso ocorre porque, por convenção, usar PascalCase ajuda a distinguir tipos de variáveis. Também ajuda na legibilidade. Quando você vê User[], saberá que é um array de objetos do tipo User.
Este módulo não possui perguntas. Marque como concluído.