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