Type Guards

Son las maneras de controlar los tipos de datos\/objetos que se están utilizando, esto rompe con la programación orientada a objetos ya que esto representa un problema para el polimorfismo, por ejemplo: si estuvieramos haciendo una serie de comprobaciones para que según el tipo de clase u objeto se realize una acción u otra en el momento en el que existiera un objeto o clase que no tuvieramos contemplado tendriamos que modificar todo el código.

interface Bird {
    fly();
    layEggs();
}

interface Fish {
    swim();
    layEggs();
}

function getAnimal() : Fish | Bird {
    var a : Fish;
    return a;
}

function isFish(pet: Fish |Bird): pet is Fish {
    return (<Fish>pet).swim != undefined;
}

let pet = getAnimal();

if(isFish(pet)) {
    (<Fish>pet).swim();
    console.log('glup');
} else {
    console.log('believe i can fly');
    pet.fly();
}

results matching ""

    No results matching ""