馃敟 CLASSES, HERENCIA

As铆 como sucede en otros lenguajes orientados a objetos, las clases en JavaScript pueden heredar de otras clases utilizando la clausula implements.

Se puede utilizar implements para verificar que una clase satisface una interface particular. Un error ser谩 disparado si no se ha implementado correctamente.

Por ejemplo si tenemos la siguiente interface.

interface Encendible {
    encender(): void;
}

Al implementar la clase podemos ver que esto nos genera un error mientras no se haya definido el m茅todo de la interface encender.

class Television implements Encendible {}

Por ello requerimos que se implementen todos los m茅todos de la clase Encendible.

class Television implements Encendible {
    encender(): void {
        console.log("El televisor se ha encendido");
    }
}

Las clases pueden implementar diferentes interfaces, por ejemplo Class Television implements Endendible, Apagable, Sintonizable {}.

Precauciones

Es importante entender que la clausula implements solo verifica que la clase sea tratada como un tipo equivalente a la interface. No cambia el tipo de la clase o sus m茅todos de ninguna forma. Un error com煤n es asumir que la clausula implements cambiar谩 el tipo de la clase, pero esto no sucede.

interface Verificable {
    verificar(nombre: string): boolean;
}

class NombreVerificable implements Verificable {
    verificar(nombre): boolean {
        // <- nombre se convierte en un par谩metro typo any
        return nombre.toLowerCase();
    }
}