Aparência
Tipos de Objetos
TypeScript adiciona tipagem estática ao JavaScript, o que significa que você pode definir a forma de um objeto, especificando os tipos de suas propriedades. Isso não apenas ajuda na verificação de erros durante a compilação mas também melhora a autocompletação e o entendimento do código.
Definindo Tipos de Objetos
Para definir um tipo de objeto em TypeScript, você pode usar interfaces ou tipos. Isso envolve declarar a forma que um objeto deve ter, incluindo as propriedades e seus tipos.
Usando Interfaces:
typescript
interface Pessoa {
nome: string;
idade: number;
}
let pessoa: Pessoa = {
nome: "João",
idade: 30,
};
Neste exemplo, a interface Pessoa
define um tipo de objeto com uma nome
e uma idade
. Qualquer objeto atribuído a uma variável do tipo Pessoa
deve aderir a esta forma.
Usando Type Aliases:
typescript
type Animal = {
nome: string;
especie: string;
};
let animal: Animal = {
nome: "Toby",
especie: "Cachorro",
};
Type aliases
também podem ser usados para definir tipos de objetos, funcionando de maneira muito semelhante às interfaces, com algumas diferenças em capacidades avançadas e sintaxe.
Propriedades Opcionais
Nem todas as propriedades de um objeto são necessárias. TypeScript permite marcar propriedades que podem estar ausentes em alguns objetos usando um ponto de interrogação (?
) após o nome da propriedade.
typescript
interface Carro {
marca: string;
modelo: string;
ano?: number; // A propriedade 'ano' é opcional
}
let meuCarro: Carro = {
marca: "Toyota",
modelo: "Corolla",
};
Neste caso, o objeto meuCarro
é válido mesmo sem a propriedade ano
, porque ano
é uma propriedade opcional na interface Carro
.
Propriedades de Somente Leitura
TypeScript permite especificar que certas propriedades de um objeto só podem ser escritas no momento da criação do objeto. Depois disso, elas não podem ser alteradas. Isso é feito com a palavra-chave readonly
.
typescript
interface Configuracao {
readonly url: string;
readonly metodo: string;
}
let config: Configuracao = {
url: "http://api.exemplo.com",
metodo: "GET",
};
// A linha a seguir causará um erro se descomentada porque 'url' é somente leitura
// config.url = "https://api.exemplo.com";
Neste exemplo, tentar mudar o valor de url
ou metodo
depois de sua inicialização resultará em um erro de compilação, garantindo que o objeto config
mantenha sua integridade após ser configurado inicialmente.
Conclusão
A definição explícita de tipos para objetos em TypeScript é uma poderosa ferramenta para melhorar a segurança e a clareza do código. A capacidade de especificar propriedades opcionais e de somente leitura ajuda a modelar objetos mais precisamente de acordo com os requisitos do seu sistema, prevenindo muitos tipos de bugs em tempo de execução.