Clases y Objects
Una clase agrupa datos (propiedades) con las funciones que operan sobre ellos (métodos) — la misma idea que en JavaScript, pero TypeScript añade modificadores de acceso que controlan desde dónde se puede usar una propiedad o método.
main.ts
Pruébalo tú mismo →class Dog {
name: string;
private age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
bark(): string {
return `${this.name} says Woof! (age ${this.age})`;
}
}
const rex = new Dog("Rex", 3);
console.log(rex.name);
console.log(rex.bark());Output
Rex Rex says Woof! (age 3)
public, private, protected, y readonly
- public es el valor por defecto — accesible desde cualquier lugar, incluso fuera de la clase
- private solo es accesible desde dentro de la propia clase — rex.age sería un error de compilación fuera de Dog
- protected es como private, pero también accesible desde subclases
- readonly se puede combinar con cualquiera de los anteriores, y solo se puede asignar una vez, normalmente en el constructor
Forma abreviada del constructor
Escribir this.name = name para cada propiedad se vuelve repetitivo — TypeScript te permite declarar y asignar una propiedad directamente en la lista de parámetros del constructor.
main.ts
Pruébalo tú mismo →class Point {
constructor(public x: number, public y: number) {}
toString(): string {
return `(${this.x}, ${this.y})`;
}
}
const p = new Point(3, 4);
console.log(p.toString());Output
(3, 4)
Siguiente: generics — escribir una función o tipo que funcione con muchos tipos, sin renunciar a la seguridad de tipos.