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.