Tipar objetos en TypeScript
Como ya vimos en la sección de JavaScript, los objetos son la unidad fundamental para agrupar y pasar información. En TypeScript, representamos esta información mediante el tipo objeto.
Este tipo se puede representar de varias maneras, ya sea como objeto anónimo:
function greetAnonymous(person: { name: string; age: number }) {
return "Hello " + person.name;
}
greetAnonymous({name: "Lucas", age: 28});
Pueden ser declarados a través de interfaces:
interface Person {
name: string;
age: number;
}
let person: Person = {name: "Lucas", age: 28};
function greetInterface(person: Person) {
return "Hello " + person.name;
}
greetInterface(person);
O como un type alias
type PersonType = {
name: string;
age: number;
};
let personType: PersonType = {name: "Lucas", age: 28};
function greetType(person: PersonType) {
return "Hello " + person.name;
}
greetType(personType);
En estos tres ejemplos tenemos funciones con objetos como parámetros que contienen la propiedad name, un string, y age, un número.
Es por ello que podemos utilizar cualquiera de estas estructuras para representar objetos en JavaScript, además, como vimos en la sección de interfaces, actualmente en TypeScript puede usarse indistintamente interfaces y type alias en casi cualquier contexto.