Objects e Interfaces
Una interface describe la forma que debe tener un objeto — qué propiedades necesita, y de qué tipo es cada una. Una vez que la escribes, TypeScript comprueba cada objeto que afirmas que la cumple.
main.ts
Pruébalo tú mismo →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 }
AlicePropiedades opcionales y readonly
Un ? después del nombre de una propiedad la hace opcional — un objeto puede omitirla por completo. readonly marca una propiedad que se puede asignar una sola vez (normalmente cuando se crea el objeto) pero nunca reasignar después.
main.ts
Pruébalo tú mismo →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 se marcaría de inmediato — readonly se hace cumplir en tiempo de compilación, de la misma forma que cualquier otra regla de tipos.
Siguiente: type aliases y union types — nombrar un tipo, y describir un valor que podría ser de más de un tipo.