TypeScript - Declarando propriedades de uma classe direto no construtor

Por Humberto Machado em 02-12-2016

O TypeScript nos dá uma funcionalidade legal vinda do C#: declarar as propriedades de uma class direto no construtor. Vamos entender melhor no exemplo.

O que normalmente faríamos assim:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Task {
public title: string;
public done: boolean;
public creationDate: Date;
public finishDate: Date;
constructor(title: string, done: boolean, creationDate: Date, finishDate: Date) {
this.title = title;
this.done = done;
this.creationDate = creationDate;
this.finishDate = finishDate;
}
}
var task: Task = new Task('My Task', false, new Date(), new Date());
console.log(task.title); //> My Task

Podemos fazer assim:

1
2
3
4
5
6
7
class Task {
constructor(public title: string, public done: boolean, public creationDate: Date, public finishDate: Date) {}
}
var task: Task = new Task('My Task', false, new Date(), new Date());
console.log(task.title); //> My Task

Simples! Resumimos o conteudo da classe em uma linha de código.

Obrigado Plínio Naves pela dica!