Solución
solution.tsTypeScript
interface Circle {
kind: "circle";
radius: number;
}
interface Square {
kind: "square";
side: number;
}
type Shape = Circle | Square;
export function getArea(shape: Shape): number {
// Examina la propiedad discriminante para determinar la figura
// y calcula el área correspondiente
console.log(typeof shape.kind)
// 'kind' es la prop. discriminante y los if(condición son nuestros
// GUARDIANES DE TIPO
if(shape.kind === "circle") {
return shape.radius ** 2 * Math.PI
}
if(shape.kind === "square") {
return shape.side ** 2
}
return 0;
}0respuestas