El mapeo de objetos, tambi茅n conocido como transformaci贸n de objetos o conversi贸n de objetos, es una t茅cnica utilizada para convertir datos de una forma de objeto a otra aplicando un conjunto espec铆fico de reglas o l贸gica. Es particularmente 煤til cuando se trata de datos recibidos de API, bases de datos o fuentes externas que pueden no coincidir con el formato requerido por la aplicaci贸n.
Considere un escenario en el que recibe datos de usuario de una API en el siguiente formato:
// Datos de API
const usuarioapi = {
identificaci贸n: 123,
nombre: 'Juan',
apellido: 'Doe',
correo electr贸nico: 'john.doe@example.com',
edad: 30,
isActive: verdadero,
};
Sin embargo, en su aplicaci贸n, debe utilizar el siguiente formato para los datos del usuario:
// Formato requerido en la aplicaci贸n
const usuarioaplicaci贸n = {
ID de usuario: 123,
nombre: 'John Doe',
contacto: {
correo electr贸nico: 'john.doe@example.com',
isActive: verdadero,
},
};
Aqu铆, el mapeo de objetos se puede utilizar para transformar apiUsuario en usuario de la aplicaci贸n.
En JavaScript, el mapeo de objetos se puede lograr utilizando varias t茅cnicas, como para…en bucles, mapa() funci贸n y enfoques modernos como la desestructuraci贸n y difusi贸n de objetos. Exploremos estos m茅todos con ejemplos:
Usando for… en bucle:
funci贸n mapUser(apiUser) {
const usuarioaplicaci贸n = {};
para (clave constante en apiUser) {
interruptor (tecla) {
Identificaci贸n del caso':
appUser.userId = apiUser[key];
romper;
caso 'nombre':
caso 'apellido':
if (!appUser.name) {
appUser.name = '';
}
appUser.name += apiUser[key] + ' ';
romper;
caso 'correo electr贸nico':
caso 'isActive':
si (!appUser.contact) {
appUser.contact = {};
}
appUser.contacto[key] = usuarioapi[key];
romper;
por defecto:
romper;
}
}
appUser.name = appUser.name.trim();
devolver usuario de aplicaci贸n;
}
Este c贸digo define un mapaUsuario funci贸n en JavaScript, que requiere una apiUsuario objeto como entrada y devuelve un transformado usuario de la aplicaci贸n objeto. El prop贸sito de esta funci贸n es realizar mapeo de objetos, convirtiendo datos de una forma de objeto (apiUser) a otra (appUser) seg煤n reglas espec铆ficas.
En pocas palabras el mapaUsuario La funci贸n toma un objeto de entrada (apiUser) y lo convierte en un nuevo objeto (appUser) con una forma diferente seg煤n reglas espec铆ficas. Extrae propiedades espec铆ficas, concatena las primero y 煤ltimo nombre en un solo nombre propiedad y agrupa la correo electr贸nico y est谩 activo propiedades bajo el contacto objeto. La resultante usuario de la aplicaci贸n Luego, el objeto se devuelve como salida.
Uso de la desestructuraci贸n y difusi贸n de objetos:
funci贸n mapUser(apiUser) {
const {id, nombre, apellido, correo electr贸nico, isActive} = apiUser;
const usuarioaplicaci贸n = {
ID de usuario: identificaci贸n,
nombre: `${nombre} ${apellido}`,
contacto: {correo electr贸nico, est谩 activo},
};
devolver usuario de aplicaci贸n;
}
Este c贸digo define un mapaUsuario funci贸n en JavaScript que realiza el mapeo de objetos. La funci贸n toma una apiUsuario objeto como entrada y devuelve un transformado usuario de la aplicaci贸n objeto.
En resumen, el mapaUsuario La funci贸n toma un objeto de entrada (apiUser) y lo convierte en un nuevo objeto (appUser) con una forma diferente. Utiliza la desestructuraci贸n de objetos para extraer propiedades espec铆ficas del apiUsuario objeto y crea un objeto de contacto anidado con correo electr贸nico y propiedades isActive. La resultante usuario de la aplicaci贸n Luego, el objeto se devuelve como salida, representando los datos mapeados.
En TypeScript, el mapeo de objetos se puede llevar al siguiente nivel con la ventaja adicional de la seguridad de tipos y la inferencia de tipos. TypeScript le permite definir interfaces o tipos que representan las formas de sus datos, lo que facilita la detecci贸n de errores relacionados con el tipo durante el desarrollo.
Veamos c贸mo se puede realizar el mapeo de objetos en TypeScript:
interfaz APIUser {
n煤mero de identificaci贸n;
nombre: cadena;
apellido: cadena;
correo electr贸nico: cadena;
edad: n煤mero;
isActive: booleano;
}
interfaz AppUser {
ID de usuario: n煤mero;
nombre: cadena;
contacto: {
correo electr贸nico: cadena;
isActive: booleano;
};
}
funci贸n mapUser(apiUser: APIUser): AppUser {
const {id, nombre, apellido, correo electr贸nico, isActive} = apiUser;
const usuarioaplicaci贸n: usuarioaplicaci贸n = {
ID de usuario: identificaci贸n,
nombre: `${nombre} ${apellido}`,
contacto: {correo electr贸nico, est谩 activo},
};
devolver usuario de aplicaci贸n;
}
Este fragmento de c贸digo define dos interfaces, Usuario API y Usuario de la aplicaci贸n, que representa la forma de los datos para un usuario de API y el usuario de la aplicaci贸n transformada, respectivamente. Tambi茅n incluye una funci贸n llamada mapaUsuario que toma un objeto de tipo Usuario API como entrada y devuelve un objeto de tipo Usuario de la aplicaci贸n.
En pocas palabras, el fragmento de c贸digo demuestra c贸mo utilizar interfaces para definir la estructura de datos para un usuario API (APIUser) y el usuario de la aplicaci贸n transformada (AppUser). La funci贸n mapUser realiza efectivamente el mapeo de objetos al convertir datos de APIUser a AppUser, adhiri茅ndose a las interfaces definidas.
En escenarios del mundo real, los objetos suelen contener propiedades opcionales. Al realizar el mapeo de objetos, es esencial manejar estas propiedades opcionales con cuidado. TypeScript le permite definir propiedades opcionales en sus interfaces usando el ? s铆mbolo.
Considere una actualizaci贸n Usuario API interfaz con un opcional edad propiedad:
interfaz APIUser {
n煤mero de identificaci贸n;
nombre: cadena;
apellido: cadena;
correo electr贸nico: cadena;
驴edad?: n煤mero; // propiedad opcional
isActive: booleano;
}
Ahora, actualicemos nuestra funci贸n de mapeo de objetos para manejar el opcional edad propiedad:
funci贸n mapUser(apiUser: APIUser): AppUser {
const {id, nombre, apellido, correo electr贸nico, edad, est谩 activo} = apiUser;
const usuarioaplicaci贸n: usuarioaplicaci贸n = {
ID de usuario: identificaci贸n,
nombre: `${nombre} ${apellido}`,
contacto: {correo electr贸nico, est谩 activo},
};
si (edad) {
appUser.contact.age = edad;
}
devolver usuario de aplicaci贸n;
}
Este fragmento de c贸digo define una funci贸n llamada mapaUsuarioque toma un objeto de tipo Usuario API como entrada y devuelve un objeto de tipo Usuario de la aplicaci贸n. La funci贸n realiza un mapeo de objetos para transformar datos de Usuario API a Usuario de la aplicaci贸nrespetando los tipos definidos.
Esto resume toda mi explicaci贸n desde el principio de este art铆culo. Por eso me gustar铆a guiarnos por cada paso de este 煤ltimo fragmento de c贸digo.
Explicaci贸n del fragmento de c贸digo:
const { id, nombre, apellido, correo electr贸nico, edad, isActive } = apiUser;: Deestructura el objeto apiUser de entrada para extraer sus propiedades id, nombre, apellido, correo electr贸nico, edad e isActive.const appUser: AppUser = { … } : Inicializa un nuevo objeto llamado appUser, que almacenar谩 los datos transformados. Se adhiere a la estructura definida por la interfaz AppUser.userId: id,: Asigna el valor de id del objeto apiUser de entrada a la propiedad userId del objeto appUser.name: `${firstName} ${lastName}`,: Concatena los valores de nombre y apellido con un espacio entre ellos, y asigna la cadena resultante a la propiedad de nombre del objeto appUser.contact: { email, isActive },: Crea un objeto de contacto anidado dentro de appUser y asigna las propiedades email e isActive de el objeto apiUser de entrada a las propiedades correspondientes en contact.if (edad) {…}: Comprueba si la propiedad de edad del objeto apiUser de entrada existe y tiene un valor verdadero.appUser.contact.age = edad;: Si la edad La propiedad existe y tiene un valor veraz, asigna el valor de edad a la propiedad edad del objeto appUser.contact.return appUser;: El objeto appUser transformado se devuelve como resultado de la funci贸n mapUser.
En resumen, el mapaUsuario La funci贸n realiza el mapeo de objetos al convertir datos de un Usuario API oponerse a una Usuario de la aplicaci贸n objeto. Crea un nuevo objeto con la estructura requerida y asigna valores del objeto de entrada en consecuencia. Si la propiedad de edad existe, se incluye en el objeto de contacto anidado del resultado. Usuario de la aplicaci贸n objeto.
El mapeo de objetos es una t茅cnica poderosa en JavaScript y TypeScript que le permite transformar datos entre diferentes formas de objetos de manera eficiente. Simplifica las transformaciones de datos, haciendo que su c贸digo sea m谩s legible y f谩cil de mantener. En TypeScript, el mapeo de objetos se vuelve a煤n m谩s valioso ya que aprovecha el sistema de tipos para detectar errores durante el desarrollo, proporcionando una base de c贸digo m谩s s贸lida y segura.
Al comprender las diversas t茅cnicas de mapeo de objetos y aprovechar el sistema de tipos de TypeScript, puede administrar de manera efectiva estructuras de datos complejas en sus aplicaciones web y optimizar el proceso de transformaci贸n de datos.
驴Encuentra 煤til este art铆culo? Deja un me gusta y comenta. Gracias 馃檹.