Classes e Objects
Uma classe agrupa dados (propriedades) com as funções que operam sobre eles (métodos) — a mesma ideia do JavaScript, mas o TypeScript adiciona modificadores de acesso que controlam de onde uma propriedade ou método pode ser usado.
main.ts
Teste você mesmo →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, e readonly
- public é o padrão — acessível de qualquer lugar, incluindo fora da classe
- private só é acessível de dentro da própria classe — rex.age seria um erro de compilação fora de Dog
- protected é como private, mas também acessível a partir de subclasses
- readonly pode ser combinado com qualquer um dos anteriores, e só pode ser definido uma vez, geralmente no construtor
Forma abreviada do construtor
Escrever this.name = name para cada propriedade fica repetitivo — o TypeScript permite declarar e atribuir uma propriedade diretamente na lista de parâmetros do construtor.
main.ts
Teste você mesmo →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)
A seguir: generics — escrever uma função ou tipo que funcione em muitos tipos, sem abrir mão da segurança de tipos.