Un contrato es un acuerdo legal que no se puede romper, que no se puede romper.
Introducción
¿Ya tomaste el Curso de TypeScript: Tipos Avanzados y Funciones?
Fundamentos de POO
Class
Métodos
Acceso público
Acceso privado
Constructor
Getters
Setters
POO Avanzada
Herencia
Acceso protegido
Static
Interfaces
Clases abstractas
Singleton: constructor privado
Asincronismo y consumo de APIs
Promesas
Tipando respuestas HTTP
Proyecto: migración de funciones a clases
Consumiendo ProductMemoryService
ProductHttpService
Consumiendo ProductHttpService
Genéricos
Generics
Generics en clases
Generics en métodos
Decoradores
Próximos pasos
¿Quieres más cursos de TypeScript?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 10
Preguntas 7
Un contrato es un acuerdo legal que no se puede romper, que no se puede romper.
Les comparto mis apuntes. 😄
Las interfaces en clases funcionan como contratos, nos permiten tipar tanto los atributos como los métodos.
Aquí no podemos utilizar encapsulamiento, por defecto todos los atributos y métodos son públicos.
Tiene la misma sintaxis cuando aplicamos herencias en las clases, pero implements no es una herencia, es un contrato que nos dice que nuestra clase tiene que cumplir con un estándar que es la interface.
Este contrato es tanto como para los parámetros como para los métodos.
interface NameInterface {
statements
}
class NameClass implements NameInterface {
constructor (
propertiesOfInterface
) {
statements
}
methodOfInterface (): dataType { statements }
}
export interface Driver {
database: string;
password: string;
port: number;
conect (): void;
disconnect (): void;
isConeected (name: string): boolean;
}
// const driver: Driver = {
// database: '',
// password: '',
// port: 23,
// }
class PostresDriver implements Driver{
constructor (
public database: string,
public password: string,
public port: number,
) {
}
conect (): void {}
disconnect (): void {}
isConeected (name: string): boolean {
return true;
}
}
class Oracle implements Driver {
constructor (
public database: string,
public password: string,
public port: number,
) {
}
conect (): void {}
disconnect (): void {}
isConeected (name: string): boolean {
return true;
}
}
Una interfaces se implementan con la palabra reservada implements
En VScode puedes colcar el cursor sobre el nombre de la clase, en la parte superior izquierda sobre la palabra class, sale un ícono(como un bombilllito) que al clickearlo te despliega un menú, si selecionas:
-Inplements Interface ‘NameInterface’…
le agrega a nuestra clase con todos los atributos de la interface
No es una herencia, es un estandar que se debe cumplir porque previamente ya fue definido
Podemos usar las interfaces como ‘contratos’ para que las clases cumplan una serie de requisitos.
Es increible que se muestren ejemplos de la vida real, es muy util ya que asi nos ayuda a implementar este tipo de cuestiones
no entiendo 😦
Class Code #12
export interface Driver {
database: string;
password: string;
port: number;
connect() :void;
disconnect(): void;
isConnected(name: string):boolean;
}
/* const driver: Driver = {
database: '',
password: '',
port: 23
} */
class PostgressDriver implements Driver {
constructor(
public database: string,
public password: string,
public port: number,
private host: number
) {}
connect(): void {
}
disconnect(): void {
}
isConnected(name: string): boolean {
return true;
}
}
class OracleDriver implements Driver {
constructor(
public database: string,
public password: string,
public port: number
) {}
connect(): void {
}
disconnect(): void {
}
isConnected(name: string): boolean {
return false;
}
}
Contrato: Acuerdo, generalmente escrito, por el que dos o más partes se comprometen recíprocamente a respetar y cumplir una serie de condiciones.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.