Instruções

Passo 30

Para fazer a função calcular os resultados, você pode usar uma declaração if...else if ou switch. Primeiro, defina o tipo de retorno da função como string, depois calcule o resultado da área para um círculo, retângulo, triângulo e um caso de forma que não exista. Por enquanto, trate o caso do círculo usando a fórmula Math.PI * shape.radius ** 2, depois adicione um caso padrão que use o tipo never. O tipo never no caso padrão atua como uma verificação de exaustividade. Se uma nova forma for adicionada à união Shapes, o TypeScript vai detectar isso aqui porque shape não iria mais se restringir a never, gerando um erro de compilação que lembra você de tratar esse caso. Aqui está um exemplo:
type Status = "pending" | "approved" | "rejected";

function getColor(status: Status): string {
  switch (status) {
    case "pending": return "yellow";
    case "approved": return "green";
    case "rejected": return "red";
    default:
      const _doesNotExist: never = status;
      throw new Error(Unhandled: ${_doesNotExist});
  }
}
Por enquanto, você pode retornar uma string vazia nos casos do retângulo e do triângulo para que o teste passe.

O que fazer:

Testes:

  • Sua função `calculateArea` deve ter um `string` como tipo de retorno.
  • Sua função `calculateArea` deve retornar o resultado correto do cálculo da área de um círculo.
  • Você deve usar o tipo `never`.
  • Sua função `calculateArea` deve tratar formas inexistentes usando o tipo `never`.

Preview