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

  Termina em   Tempo restante da oferta: 12 Horas 

 29 Min 

 05 Seg 

   Tempo restante da oferta: 12 29 05 

  [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) Modificadores de acesso no TypeScript  [ Javascript ](https://www.treinaweb.com.br/blog/categoria/javascript) 

# Modificadores de acesso no TypeScript

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

 [ 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)  

No artigo [trabalhando com classes em TypeScript](https://www.treinaweb.com.br/blog/classes-no-typescript), aprendemos a criar uma classe com suas propriedades e instanciar um objeto, agora vamos ver como controlar o comportamento de acesso dessas propriedades, para isso utilizaremos os modificadores de acesso.

[  ![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)

## Modificadores de acesso no TypeScript

Seguindo o exemplo do artigo classes no TypeScript temos a classe **Pessoa** com 3 propriedades, **nome**, **idade** e **estaVivo**:

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

```

Perceba que não há nenhuma palavra antes das propriedades, isso significa que elas irão receber o modificador **“public”** por padrão, ou seja, elas são públicas e podem ser acessadas e alteradas tanto dentro da classe ou fora dela, não tendo um escopo de “segurança”.

Para ter esse controle, há os modificadores de acesso, são eles:

### Public

Pode ser acessado tanto pela mesma classe, classes filhas e outras classes.

```tsx
class Pessoa{
	nome: string = "TreinaWeb";
	idade: number = 12
	estaVivo: boolean = true;
}

let pessoa = new Pessoa();
pessoa.nome = "Paulo"; //com o modificador public podemos acessar e alterar o valor da
											//propriedade nome fora da classe

```

### Private

Pode ser acessada somente pela própria classe.

```tsx
class Pessoa{
	private nome: string = "TreinaWeb";
	idade: number = 12
	estaVivo: boolean = true;
}

let pessoa = new Pessoa();
pessoa.nome = "Paulo"; //Utilizando private não podemos mais acessar desta forma

```

### Protected

Pode ser acessado pela mesma classe e classes filhas, não pode ser acessado por outras classes.

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

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

class PessoaFisica extends Pessoa{
  cnpj: number;

  constructor(nome: string, idade: number, estaVivo: boolean, cnpj: number){
	super(nome, idade, estaVivo); //ao utilizar protected, podemos acessar por classes
	this.cnpj = cnpj;             //filhas e pela própria classe;
  }
}

```

### Readonly

Pode ser acessado fora da classe, mas não é possível alterar o seu valor.

```tsx
class Pessoa{
	nome: string = "TreinaWeb";
	idade: number = 12
	readonly estaVivo: boolean = true;
}

let pessoa = new Pessoa();
console.log(pessoa.estaVivo); //a propriedade estaVivo será exibida com sucesso.
pessoa.estaVivo = false; //Mas não podemos alterar essa propriedade.

```

Ao usar os modificadores nós adicionamos camadas de segurança de acesso para a nossa aplicação. Desta forma, para auxiliar na manipulação destes dados, contamos com os métodos assessores **Get** e **Set.** com eles nós podemos acessar e alterar propriedades **private**/**protected**.

## Métodos Get e Set

Agora podemos criar os métodos **Get** e **Set** da seguinte maneira:

```tsx
class Pessoa{
	private nome: string = "TreinaWeb";
	private idade: number = 12
	readonly estaVivo: boolean = true;

  setNome(nome: string){
    this.nome = nome;
  }

  getNome(): string{
    return this.nome;
  }
}

let pessoa = new Pessoa();
pessoa.setNome('TW');
console.log(pessoa.getNome());

```

Perceba que utilizamos o **pessoa.setNome(‘TW’)** para alterar a propriedade nome, logo em seguida, utilizamos o método **pessoa.getNome();** para acessar a propriedade.

[  ![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)

No **TypeScript** nós temos outra maneira de usar o **Get** e **Set**, que é utilizando a palavra-chave respectiva de cada método, da seguinte forma:

```tsx
class Pessoa{
	private _nome: string = "TreinaWeb";
	private idade: number = 12
	readonly estaVivo: boolean = true;

  set nome(nome: string){
    this._nome = nome;
  }

  get nome(): string{
    return this._nome;
  }
}

let pessoa = new Pessoa();
pessoa.nome = 'TW'
console.log(pessoa.nome);

```

Neste caso podemos utilizar as palavras chave “**get**” e “**set**” diretamente, e por padrão, o nome do método é o mesmo da propriedade, que ganha o prefixo ‘\_’ como podemos ver em `_nome`.

Assim, quando vamos utilizar os métodos **Get** e **Set** desta forma, passamos o objeto e a propriedade de forma similar como se estivéssemos acessando diretamente a propriedade.

## Conclusão

Neste artigo entendemos o comportamento dos modificadores de acesso e dos métodos assessores e como podemos utilizar esses conceitos do paradigma de orientação a objetos com o TypeScript, tornando o código mais confiável para o desenvolvimento de nossas aplicações.

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

Por fim, caso queira aprender mais sobre TypeScript saiba que aqui na [TreinaWeb](https://treinaweb.com.br/) temos o curso [TypeScript - Avançado](https://www.treinaweb.com.br/curso/typescript-avancado) que possui **01h21 de vídeos** e um total de **14 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 - Avançado:

- Decorators;
- Generics;
- Type Alias e Unions;
- Type Guards
- Debug;
- Dicas e boas práticas.

- [ #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)
- [ #Métodos Assessores ](https://www.treinaweb.com.br/blog/tag/metodos-assessores)
- [ #modificadores de visibilidade ](https://www.treinaweb.com.br/blog/tag/modificadores-de-visibilidade)

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

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

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

     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/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/2022/05/como-instalar-o-csharp-e-nosso-primeiro-exemplo-400x280.png)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     4 anos atrás

    ##  [ Orientação a objetos no C# ](https://www.treinaweb.com.br/blog/orientacao-a-objetos-no-csharp) 

     Aprenda como trabalhar com classes, atributos, métodos e objetos no C# e aumente seus conhecimentos nessa linguagem incrível!

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/02/gerando-apis-clients-com-as-ferramentas-de-openapi-do-net-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     6 anos atrás

    ##  [ Gerando APIs clients com as ferramentas de OpenAPI do .NET ](https://www.treinaweb.com.br/blog/gerando-apis-clients-com-as-ferramentas-de-openapi-do-net) 

     Aprenda como gerar APIs clientes com a global tool Microsoft.dotnet-openapi.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/01/TWELVE-FACTOR-APP-400x280.png)  [ Engenharia de Software ](https://www.treinaweb.com.br/blog/categoria/engenharia-de-software) 

     6 anos atrás

    ##  [ O que são os 12 Factor App? - Parte 1 ](https://www.treinaweb.com.br/blog/o-que-sao-os-12-factor-app-parte-1) 

     Se você trabalha desenvolvendo aplicativos que funcionam como um serviço, conheça os 12 (Twelve) Factor App, uma metodologia que te ajudará a criar aplicações melhores.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/04/16095041/OCELOT-400x280.png)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     8 anos atrás

    ##  [ Criando um API Gateway com ASP.NET Core e Ocelot ](https://www.treinaweb.com.br/blog/criando-um-api-gateway-com-asp-net-core-e-ocelot) 

     Conheça o conceito de API Gateway e veja como criá-lo em uma aplicação ASP.NET utilizando a biblioteca Ocelot.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2017/06/utilizando-o-firebase-authentication-em-uma-aplicacao-android-400x280.png)  [ Android ](https://www.treinaweb.com.br/blog/categoria/android) 

     10 anos atrás

    ##  [ Utilizando o Firebase Authentication em uma aplicação Android ](https://www.treinaweb.com.br/blog/utilizando-o-firebase-authentication-em-uma-aplicacao-android) 

     Veja como implementar o Firebase Authentication em uma aplicação Android, usando o Android Studio.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/android-studio-400x280.png)  [ Android ](https://www.treinaweb.com.br/blog/categoria/android) 

     10 anos atrás

    ##  [ Google lança o Android Studio 2.3 ](https://www.treinaweb.com.br/blog/google-lanca-o-android-studio-2-3) 

     O Google lançou a nova versão do Android Studio, baseada na correção de bugs e estabilidade, além de incluir novos recursos.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/03/25180146/FERRAMENTAS-400x280.png)  [ Tecnologia ](https://www.treinaweb.com.br/blog/categoria/tecnologia) 

     8 anos atrás

    ##  [ Ferramentas para trabalhar em equipe remotamente ](https://www.treinaweb.com.br/blog/ferramentas-para-trabalhar-em-equipe-remotamente) 

     Neste artigo veremos como as aplicações podem ajudar na comunicação entre equipes remotas.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/Coding-400x280.jpg)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     10 anos atrás

    ##  [ Ref Returns no C# 7 ](https://www.treinaweb.com.br/blog/ref-returns-no-csharp-7) 

     Conheça um pouco mais sobre o recurso Ref Returns da versão 7 do C#.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/06/GUIA-CSS-400x280.jpg)  [ CSS ](https://www.treinaweb.com.br/blog/categoria/css) 

     3 anos atrás

    ##  [ Guia da linguagem CSS ](https://www.treinaweb.com.br/blog/guia-da-linguagem-css) 

     Nesse guia completo veremos como funciona e quais as formas de criar estilizações com CSS, necessário para qualquer desenvolvedor front-end

     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  **12h 29min 05s**

- 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
