Leitura recomendada
Objetivos
Declarando uma classe
Em TS classes, representam o esqueleto de objetos, são declaradas utilizando um modificador de acesso,
a palavra reservada class e um nome de classe. Classes podem possuir métodos, atributos, enums e constantes.
Sintaxe
class nome_classe {
//corpo
}
Onde
class: palavra reservada para informar que a definição do tipo de dados é uma classe.
nome_classe: nome da classe que desejamos criar
Exemplo 1
class classe
{
//corpo
}
Saída
-
A criação de objetos ou instanciação de objetos na linguagem TS é feita utilizando a palavra reservada
new como pode ser visto na sintaxe abaixo:
Sintaxe
let nome_objeto = new nome_classe()
Quando instanciamos um objeto utilizado a sintaxe acima, estamos invocando o método construtor padrão.
Esse assunto será visto mais adiante em Métodos.
Exemplo 2
class nome_classe {
//corpo
}
let classe = new nome_classe()
Saída
-
As classes que possuem codificação são chamadas de classes concretas. Além de classe concreta, a linguagem TS
possui suporte à classes abstratas que serão vistas em
Classe Abstrata
.
Para declaração de atributos ou campos que irão guardar informações sobre nossos objetos,
utilizamos os tipos de dados disponíveis pela linguagem TS e que foram vistos
TypeScript: Tipos de Dados e também classes nativas.
Tanto os métodos quanto atributos de uma classe possuem modificadores de acesso que serão vistos
em Encapsulamento e
Herança.
Sintaxe
nome_atributo: tipo_dado;
Exemplo 3
class nome_classe
{
atributo1:number; //undefined
atributo2:string; //undefined
}
let obj = new nome_classe();
Saída
-
O acesso aos atributos de uma classe é feito utilizando o operador e acesso (.) como pode ser visto na
sintaxe abaixo:
Sintaxe
nome_objeto.nome_atributo;
nome_objeto.nome_atributo = valor;
Exemplo 4
class nome_classe
{
atributo1:number = 1;
atributo2:string; //undefined
}
let obj = new nome_classe();
console.log(obj.atributo1);
Saída
1
Em Métodos vamos aprender a iniciar os
atributos de uma classe por meio do métodos construtores que recebe argumentos.
Os métodos declarados em uma classe são funções que pertencem apenas às classes e são invocados por
um instância ou objeto. O assunto método será visto em
Métodos e Sobrecarga.
Sintaxe
modificador_acesso nome_metodo( <lista_argumentos> ){
//corpo
}
Exemplo 5
class classe
{
metodo(param:number):number
{
return param*2;
}
}
Saída
-
Os modificadores de acesso tanto para atributos quanto para métodos serão vistos
em Encapsulamento.
Uma classe anônima em TS é uma classe que é atribuída à uma variável
durante sua declaração utilizando a palavra reservada new como visto acima.
Sintaxe
nome_variavel = new class {
//atributos
//métodos
}
Quando usamos a sintaxe acima, estamos declarando e instanciando um objeto sem que
a classe possua um nome. Esse tipo de classe é usada quando precisamos de um objeto
mas não precisamos definir uma classe que será reusada.
Exemplo 6
let objeto = new class {
//atributos omitidos
metodo(){
//omitido
}
}
console.log(typeof(objeto));
objeto.metodo();
Saída
"object"
TS ainda não permite a declara de classes dentro de classes, também conhecidas como
classes internas ou aninhadas. Para isso, precisamos simular uma classe utilizando
um atributo estático:
Sintaxe
static atributo = class {
//atributos
//métodos
}
Exemplo 7
class Classe {
//omitido
static ClasseInterna = class {
//atributos omitidos
metodo(){
//omitido
}
}
}
let interna = new Classe.ClasseInterna();
console.log(typeof(interna));
Saída
"object"
Verificando tipo com instanceof
Utilizando o operador instanceof podemos verificar se um objeto é de um determinado tipo ou não. Esse
operador também pode ser utilizado com interfaces.
Sintaxe
nome_objeto istanceof nome_classe
Retorno
true se é instancia, false caso contrário
Exemplo 8
class classe1{
//corpo
}
class classe2{
//corpo
}
let obj1 = new classe1();
let obj2 = new classe2();
console.log(obj1 instanceof classe1)
console.log(obj2 instanceof classe1)
console.log(obj2 instanceof classe2)
Saída
true
false
true
Histórico de atualizações
- 28/08/2025 - revisão 2 - Ajustes: pontuais, sintaxes, target de links e objetivos; Adição: classe anônima e interna
- 13/09/2024 - revisão 1 - correção em sintaxe de Atributos, ajustes gramaticais
- 01/03/2024 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.