Objects e Interfaces
Uma interface descreve o formato que um objeto deve ter — quais propriedades ele precisa, e de que tipo é cada uma. Uma vez que você escreve uma, o TypeScript verifica todo objeto que você afirma que a corresponde.
main.ts
Teste você mesmo →interface Person {
name: string;
age: number;
}
let alice: Person = { name: "Alice", age: 30 };
console.log(alice);
console.log(alice.name);Output
{ name: 'Alice', age: 30 }
AlicePropriedades opcionais e readonly
Um ? depois do nome de uma propriedade a torna opcional — um objeto pode omiti-la completamente. readonly marca uma propriedade que pode ser definida uma vez (geralmente quando o objeto é criado) mas nunca reatribuída depois disso.
main.ts
Teste você mesmo →interface Product {
readonly id: number;
name: string;
discount?: number;
}
let item: Product = { id: 1, name: "Keyboard" };
console.log(item);
item.name = "Mechanical Keyboard";
console.log(item);Output
{ id: 1, name: 'Keyboard' }
{ id: 1, name: 'Mechanical Keyboard' }item.id = 2 seria sinalizado imediatamente — readonly é aplicado em tempo de compilação, da mesma forma que qualquer outra regra de tipo.
A seguir: type aliases e union types — nomear um tipo, e descrever um valor que poderia ser de mais de um tipo.