← Volver a la tabla de contenido |
---|
Son útiles cuando se trabaja con Generics, dándole mas información a TypeScript sobre el tipo de dato que contendrá el Generic.
function merge<T, U>(objA: T, objB: U) {
return { ...objA, ...objB };
}
const mergedObject = merge(
{ first: 'cesar', hobbies: ['guitar', 'volleyball'] },
{ age: 30 }
);
en ese ejemplo anterior se podría sustituir el valor del segundo objeto de tipo genérico U
a un numero y TypeScript no mostraría error ya que no se especifica de que tipo sera el Genérico U
function merge<T, U>(objA: T, objB: U) {
return { ...objA, ...objB };
}
const mergedObject = merge(
{ first: 'cesar', hobbies: ['guitar', 'volleyball'] }, 30
);
para solucionar eso, se hace uso de la palabra extends
seguida del tipo de dato string
, object
, Array
, etc y con esto se le dice a TypeScript que los genéricos deben ser de tipo objecto
function merge<T extends object, U extends object>(objA: T, objB: U) {
return { ...objA, ...objB };
}
const mergedObject = merge(
{ first: 'cesar', hobbies: ['guitar', 'volleyball'] }, { age: 30}
);
← Volver a la tabla de contenido |
---|