Escolar Documentos
Profissional Documentos
Cultura Documentos
Termo de uso
Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-
SemDerivados CC BY-NC-ND. Você possui a permissão para realizar o download e compartilhar, desde que atribua os créditos do
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
https://creativecommons.org/licenses/by-nc-nd/4.0/
Apresentação
Nesta aula, você vai colocar seus conhecimentos em prática escrevendo um
programa real na linguagem TypeScript. Além disso, iremos aprender como
acontece a criação de um objeto, figura central da Programação Orientada a
Objetos, aprofundar seu conhecimentos em TypeScript, além de definir uma melhor
estrutura para o nosso projeto.
Objetivos
Conhecer o conceito e a criação dos métodos construtores;
Aprender como criar um objetos utilizando construtores;
Conhecer mais detalhes a respeito do tsconfig.json
Construindo objetos
Antes de tudo, é preciso ter em mente que objetos são construídos, você NÃO pode
criar um novo objeto sem invocar um construtor. Construtores representam o
código que roda sempre que você usa a palavra-chave new.
Toda classe DEVE ter um construtor. Mas isso não significa que o programador tem
que necessariamente codificar um. Caso não seja explicitamente declarado, o
compilador criará um por padrão. Exemplo de uso do construtor padrão:
Observe que quando utilizamos o operador new não existem argumentos (ou
parâmetros) dentro dos parênteses. Isso significa que podemos usar o construtor
padrão (ou, em inglês, default).
Métodos construtores
O que são construtores?
São métodos especiais para a criação e inicialização de novas instâncias de
classe (objetos);
Inicializam o novo objeto e seus atributos;
Realizam todas as outras operações que ele precisa para ser inicializado.
modelo: string;
_cor: string;
placa: string;
numPortas: number;
Você consegue notar o que está faltando? Cadê o tipo de retorno? Existem dois
pontos importantes que devemos notar a respeito dos construtores. Primeiro, é que
eles não têm tipo de retorno, segundo, que devemos utilizar a palavra reservada
constructor.
Mas, se a classe não tiver método construtor? O objeto ainda pode ser criado
usando a instrução (ou operador) new. Mas, nesse caso, será provavelmente
necessário chamar métodos de acesso (set) para definir valores para os atributos
da classe.
Observe que quando criamos o objeto já passamos os valores como parâmetro para
o construtor, com isso definindo na hora da criação do objeto os valores dos
atributos.
if(numPortas != undefined){
this.numPortas = numPortas;
}else{
this.numPortas = 2;
}
}
Abaixo, segue um exemplo de como criar uma instância do objeto carro na variável
c que recebe todos os parâmetros, porém a variável c2 só recebe os parâmetros
obrigatórios.
Arquivo tsconfig.json
O arquivo tsconfig.json em um diretório, indica que esse diretório é a raiz do projeto
Typescript. O arquivo tsconfig.json especifica as configurações de compilação
necessárias para o projeto.
{
"compilerOptions": {
"target": "es5",
"outDir": "app/js",
"noEmitOnError": true
},
"include": [
"app/ts/**/*"
]
}
Classe Carro
export class Carro{
modelo: string;
_cor: string;
placa: string;
numPortas: number;
Arquivo app.ts
let c:Carro;
c = new Carro("Fiesta","Vermelha","AEC-9898",4);
c.cor = "Vermelha";
c2.cor = "Branca"
Classe Carro
export class Carro{
modelo: string;
_cor: string;
placa: string;
numPortas: number;
if(numPortas != undefined){
this.numPortas = numPortas;
}else{
this.numPortas = 2;
}
}
Arquivo app.ts
import { Carro } from './carro';
let c:Carro;
c = new Carro("Fiesta","Vermelha","AEC-9898",4);
c.cor = "Vermelha";
Vamos a um exemplo:
class Teste{
console.log(t.exec(4,5));
console.log(t.exec('a','b'));
No exemplo acima, temos o mesmo método exec() com duas declarações e uma
implementação. A primeira assinatura possui dois parâmetros do tipo string,
enquanto a segunda possui dois parâmetros do tipo number.
O último método deve ter a implementação. Como o tipo de retorno pode ser string
ou number de acordo com as duas primeiras declarações, devemos usar
parâmetros compatíveis e tipo de retorno como any na definição da função.
Resumo
Nesta aula, você aprendeu a trabalhar com construtores, a instanciar objetos e a
utilizar parâmetros opcionais para atender necessidades diferentes durante o
desenvolvimento de uma solução. Foi definida uma estrutura de projeto mais
organizada e o arquivo tsconfig.json foi configurado com diversas opções para o
compilador (transpilador) do Typescript.