tengo dos objetos
uno es el papel:
Role { roleId: string; name: string; description: string; isModerator: string; } role = { roleId:"8e8be141-130d-4e5c-82d2-0a642d4b73e1", name:"HR", description:"HR of the Company", isModerator:"N" }y el segundo es roleDetails:
RoleDetails { name: string; description: string; isModerator: string; } Quiero asignar roleDetails = role; entonces cuando console.log(roleDetails) debería obtener:
roleDetails = { name:"HR" description:"HR of the Company" isModerator:"N" }Simplemente puede asignar cada propiedad individualmente (también tenga en cuenta que he agregado , en su objeto original entre cada valor):
let role = { roleId: "8e8be141-130d-4e5c-82d2-0a642d4b73e1", name: "HR", description: "HR of the Company", isModerator: "N" }; let roleDetails = { name: role.name, description: role.description, isModerator: role.isModerator }; console.log(roleDetails);También podría hacer esto dinámicamente con una matriz de teclas:
let role = { roleId: "8e8be141-130d-4e5c-82d2-0a642d4b73e1", name: "HR", description: "HR of the Company", isModerator: "N" }; let keys = ["name", "description", "isModerator"]; let roleDetails = Object.entries(role).reduce((a, [k, v]) => { if (keys.includes(k)) a[k] = v; return a; }, {}); console.log(roleDetails);Y también con una matriz de claves para excluir:
let role = { roleId: "8e8be141-130d-4e5c-82d2-0a642d4b73e1", name: "HR", description: "HR of the Company", isModerator: "N" }; let keysToExclude = ["roleId"]; let roleDetails = Object.entries(role).reduce((a, [k, v]) => { if (!keysToExclude.includes(k)) a[k] = v; return a; }, {}); console.log(roleDetails);Puede usar Omit<Type, Keys> para declarar el tipo RoleDetails omitiendo claves
roleIdCódigo:
interface Role { roleId: string; name: string; description: string; isModerator: string; } type RoleDetails = Omit<Role, 'roleId'>; const role: Role = { roleId: '8e8be141-130d-4e5c-82d2-0a642d4b73e1', name: 'HR', description: 'HR of the Company', isModerator: 'N', }; const roleDetails: RoleDetails = { name: role.name, description: role.description, isModerator: role.isModerator, };