Classes no TypeScript \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 05 Horas 

 51 Min 

 39 Seg 

   Tempo restante da oferta: 05 51 39 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Classes no TypeScript  [ Javascript ](https://www.treinaweb.com.br/blog/categoria/javascript) 

# Classes no TypeScript

 Neste artigo você aprenderá criar classes, implementar métodos e instanciar objetos no TypeScript usando a tipagem adequadamente.

 [ Wesley Gado ](https://www.treinaweb.com.br/blog/autor/wesley-gado) 5 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/10/tipagem-no-typescript.png)  

Um dos principais recursos que utilizamos no paradigma de orientação a objetos são as classes, com elas podemos abstrair e criar representações do mundo real para o código. Com o [TypeScript](https://www.treinaweb.com.br/blog/como-instalar-o-typescript) podemos utilizar as classes com os recursos de [tipagem](https://www.treinaweb.com.br/blog/tipagem-no-typescript/ "tipagem") estática que ele oferece, diferente do JavaScript que trabalha com tipagem dinâmica.

Primeiramente, para criar as classes usamos a palavra reservada `class` seguida do nome da classe, como: `class Pessoa{...}`. Lembrando que para as classes é convenção usarmos o padrão PascalCase (todas as palavras iniciam com letra maiúscula).

```tsx
class Pessoa{
 //propriedades
}

```

 [ ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/10/E-BOOK-GRATUITO-COMECANDO-JS.png) ](https://www.treinaweb.com.br/ebook/guia-javascript)

## Propriedades das Classes no TypeScript

Cada classe possui propriedades, ou seja, atributos que correspondem aos dados do que ela representa, no TypeScript nós devemos criar essas propriedades com o tipo respectivo de cada uma, como o exemplo:

```tsx
class Pessoa{
	nome: string;
	idade: number;
	estaVivo; boolean;
}

```

Como podemos ver no exemplo acima, declaramos três propriedades: nome, idade e estaVivo. Cada uma com seu respectivo tipo, sendo: string, number e boolean. Desta forma o TypeScript nos obriga a atribuir valores que correspondem ao tipo correto de cada propriedade.

Agora, após criar a nossa classe, é necessário criar uma instância de “Pessoa”, ou seja, um objeto que irá representar efetivamente uma pessoa. Porém, antes disso, vamos criar o método construtor, ele é que irá criar o nosso objeto com as propriedades necessárias. Podemos criá-lo desta forma:

```tsx
class Pessoa {
	nome: string;
	idade: number;
	estaVivo: boolean;

	constructor(nome: string, idade: number, estaVivo: boolean){
		this.nome = nome;
		this.idade = idade;
		this.estaVivo = estaVivo;
	}
}

```

Assim, quando for necessário instanciar um objeto Pessoa, vamos passar os dados das propriedades:

```tsx
class Pessoa {
	nome: string;
	idade: number;
	estaVivo: boolean;

	constructor(nome: string, idade: number, estaVivo: boolean){
		this.nome = nome;
		this.idade = idade;
		this.estaVivo = estaVivo;
	}
}

let pessoa = new Pessoa('Paulo', 0, true);

```

Logo, se passarmos um parâmetro com o tipo diferente do que declaramos nas propriedades de nossa classe, o TypeScript irá exibir um aviso:

![Aviso paramentro com tipo diferente](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/11/classes-no-typescript-8.png)

Ao criar o objeto pessoa, podemos visualizar no console do navegador seus atributos utilizando um console.log(pessoa), desta forma vamos obter o seguinte resultado:

![Objeto pessoa](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/11/classes-no-typescript-1-2.png)

Perfeito, temos um objeto instanciado da Classe Pessoa!

Nós também podemos acessar os atributos do objeto Pessoa diretamente, seguindo a sintaxe “objeto.atributo”:

![Visualizar atributo do objeto pessoa](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/11/classes-no-typescript-2-2.png)

## Métodos TypeScript

Podemos também ter os métodos, que são basicamente comportamentos da classe.

[  ![Node.js - Fundamentos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/node-js.svg)   Curso Node.js - Fundamentos Conhecer o curso ](https://www.treinaweb.com.br/curso/nodejs-fundamentos)

Nesta classe teremos os métodos nascer(), crescer(), morrer(), vamos implementá-las:

```tsx
class Pessoa {
	nome: string;
	idade: number;
	estaVivo: boolean;

	constructor(nome: string, idade: number, estaVivo: boolean){
		this.nome = nome;
		this.idade = idade;
		this.estaVivo = estaVivo;
	}

	nascer(): void{
		console.log(`${this.nome} nasceu!`)
	}

	crescer(): void{
		this.idade++;
		console.log(`${this.nome} fez ${this.idade} ano(s)!`)
	}

	morrer(): void{
        this.idade = 0;
		console.log(`${this.nome} morreu!`)
	}
}

let pessoa = new Pessoa('Paulo', 0, true);

```

No método além do nome precisamos passar os **parâmetros com** **os tipos respectivos** e o **retorno.** Outro ponto que vale ressaltar, repare que ao utilizar os atributos dos **métodos dentro da classe nós utilizamos o ‘this’**, desse modo, para referenciar que são as propriedades da classe.

Por fim, podemos chamar os métodos e confirmar se o comportamento está correto:

```tsx
class Pessoa {
	nome: string;
	idade: number;
	estaVivo: boolean;

	constructor(nome: string, idade: number, estaVivo: boolean){
		this.nome = nome;
		this.idade = idade;
		this.estaVivo = estaVivo;
	}

	nascer(): void{
		console.log(`${this.nome} nasceu!`)
	}

	crescer(): void{
		this.idade++;
		console.log(`${this.nome} fez ${this.idade} ano(s)!`)
	}

	morrer(): void{
        this.idade = 0;
		console.log(`${this.nome} morreu!`)
	}
}

let pessoa = new Pessoa('Paulo', 0, true);
pessoa.nascer();
pessoa.crescer();
pessoa.morrer();

```

![Executando métodos da classe Pessoa](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/11/classes-no-typescript-4-6.png)

## Conclusão

Neste artigo aprendemos a criar uma classe simples com atributos, métodos e instanciamos um objeto desta classe. Lembrando que este é só o começo, em relação às classes temos conceitos dos modificadores de acesso, herança, entre outros que veremos em breve :D

[  ![TypeScript - Fundamentos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/typescript.svg)   Curso TypeScript - Fundamentos Conhecer o curso ](https://www.treinaweb.com.br/curso/typescript-fundamentos)

Por fim, caso queira aprender mais sobre TypeScript saiba que aqui na [TreinaWeb](https://treinaweb.com.br/) temos o curso [TypeScript - Fundamentos](https://www.treinaweb.com.br/curso/typescript-fundamentos) que possui **01h31 de vídeos** e um total de **30 exercícios**. Conheça também nossos outros cursos de [TypeScript](https://www.treinaweb.com.br/cursos?q=typescript).

Veja quais são os tópicos abordados durante o curso de TypeScript - Fundamentos:

- Compreender melhor as vantagens que a utilização do TypeScript pode trazer;
- Utilizar a tipagem estática que o TypeScript traz;
- Utilizar o conceito de type assertion;
- Aplicar construção e desconstrução (ou decomposição) de objetos no TypeScript;
- Aplicar conceitos típicos de orientação a objetos, como classes, métodos acessores, interfaces e herança com o TypeScript;
- Verificar qual seria o código JavaScript que teria que ser produzido para se obter um efeito análogo à utilização do TypeScript.

- [ #JavaScript ](https://www.treinaweb.com.br/blog/tag/javascript)
- [ #Orientação a objetos ](https://www.treinaweb.com.br/blog/tag/orientacao-a-objetos)
- [ #TypeScript ](https://www.treinaweb.com.br/blog/tag/typescript)
- [ #classes ](https://www.treinaweb.com.br/blog/tag/classes)

Autor

 ![Wesley Gado](//secure.gravatar.com/avatar/1b770ca482a7232b1885881430a592bb?d=mm)

## Wesley Gado

 Formado em Análise e Desenvolvimento de Sistemas pelo Instituto Federal de São Paulo, atuou em projetos como desenvolvedor Front-End. Nas horas vagas grava Podcast e arrisca uns três acordes no violão. 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/wesley-gado)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/10/tipagem-no-typescript-400x280.png)  [ Javascript ](https://www.treinaweb.com.br/blog/categoria/javascript) 

     5 anos atrás

    ##  [ Modificadores de acesso no TypeScript ](https://www.treinaweb.com.br/blog/modificadores-de-acesso-no-typescript) 

     Nester artigo vamos aprender a utilizar os modificadores de acesso das propriedades de uma classe no TypeScript.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/09/TYPESCRIPT-400x280.png)  [ Javascript ](https://www.treinaweb.com.br/blog/categoria/javascript) 

     5 anos atrás

    ##  [ Tipagem no TypeScript ](https://www.treinaweb.com.br/blog/tipagem-no-typescript) 

     Neste artigo vamos aprender a trabalhar utilizando a tipagem do TypeScript com variáveis, constantes, arrays e objetos.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/09/TYPESCRIPT-400x280.png)  [ Javascript ](https://www.treinaweb.com.br/blog/categoria/javascript) 

     5 anos atrás

    ##  [ Como instalar o TypeScript ](https://www.treinaweb.com.br/blog/como-instalar-o-typescript) 

     Neste artigo veremos como instalar o TypeScript, conhecer o arquivo tsconfig, executar nosso primeiro código no Node.js e no navegador.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/12/TS-ZOD-400x280.jpg)  [ Javascript ](https://www.treinaweb.com.br/blog/categoria/javascript) 

     3 anos atrás

    ##  [ O que é o Zod? ](https://www.treinaweb.com.br/blog/o-que-e-o-zod) 

     Neste artigo vamos ter uma introdução sobre o Zod, uma biblioteca de declaração e validação de dados em TypeScript e criar um exemplo de como utilizá-la.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/03/o-que-e-fastapi-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     4 anos atrás

    ##  [ Criando o primeiro CRUD com FastAPI ](https://www.treinaweb.com.br/blog/criando-o-primeiro-crud-com-fastapi) 

     Neste artigo nós iremos aprender um pouco mais sobre o FastAPI durante o desenvolvimento de uma API com todas as operações de CRUD.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/05/NEST-JS-UPLOAD-ARQUIVOS-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     3 anos atrás

    ##  [ Guia do framework NestJS ](https://www.treinaweb.com.br/blog/guia-do-framework-nestjs) 

     Neste guia do framework NestJS vamos fazer um compilado de tópicos úteis sobre o framework, desde criar um projeto básico até autenticação.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/12/NEST-JS-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     4 anos atrás

    ##  [ Autenticação: Protegendo Rotas com NestJS e Passport ](https://www.treinaweb.com.br/blog/autenticacao-protegendo-rotas-com-nestjs-e-passport) 

     Neste artigo vamos aprender a proteger rotas com o NestJS e a biblioteca passport, utilizando a estratégia de autenticação com Tokens JWT.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2017/11/06145813/react-16-400x280.jpg)  [ Padrões de Projeto ](https://www.treinaweb.com.br/blog/categoria/padroes-de-projeto) 

     4 anos atrás

    ##  [ Boas práticas para o React ](https://www.treinaweb.com.br/blog/boas-praticas-para-o-react) 

     Veja neste artigo algumas das dicas e boas práticas para utilizar em uma aplicação React e tenha um código mais limpo na sua aplicação.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/08/NEST-JS-CLASS-VALIDATOR-CLASS-TRANSFORMER-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     4 anos atrás

    ##  [ Validação e Serialização no NestJS: class-validator e class-transformer ](https://www.treinaweb.com.br/blog/validacao-e-serializacao-no-nestjs-class-validator-e-class-transformer) 

     Vamos abordar a utilização de duas biblitecas de serialização e validação fundamentais no NestJS: class-validator e class-transformer

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/07/CRIANDO-PRIMEIRO-CRUD-COM-NESTJS-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     4 anos atrás

    ##  [ Criando o primeiro CRUD com NestJS ](https://www.treinaweb.com.br/blog/criando-o-primeiro-crud-com-nestjs) 

     Neste artigo veremos como criar um CRUD com NestJS, o passo a passo utilizando ferramentas como o TypeORM e o banco de dados SQLite.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/12/NEST-JS-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     4 anos atrás

    ##  [ Autenticação: Refresh Token com NestJS ](https://www.treinaweb.com.br/blog/autenticacao-refresh-token-com-nestjs) 

     Neste artigo vamos continuar no assunto de autenticação, abordando a estratégia de refresh token com o NestJS.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/ang_ignore-1-400x280.png)  [ Javascript ](https://www.treinaweb.com.br/blog/categoria/javascript) 

     10 anos atrás

    ##  [ Perdendo o preconceito com o novo Angular ](https://www.treinaweb.com.br/blog/perdendo-o-preconceito-com-o-novo-angular) 

     Vou citar alguns itens que me desanimavam sobre o novo Angular e o motivo de eu ter mudado de ideia. Quem sabe você considere utilizá-lo em seu próximo projeto?

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **05h 51min 39s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
