Avatar ·

Cómo excluir una propiedad de un tipo en TypeScript (Exclude property from type)

¡Hola a todos! Soy nuevo en TypeScript y me encontré con un problema al trabajar con tipos de objetos. Tengo una interfaz `User` que contiene muchos campos: `id`, `name`, `email`, `password`, `createdAt`, `role`, etc. Cuando devuelvo los datos del usuario desde la API, no quiero enviar al cliente `password` y `createdAt` (son campos internos). \n\nEl problema es que no quiero crear una interfaz separada para la representación pública del usuario, porque esto lleva a duplicación de código. Si agrego un nuevo campo en `User`, tendré que recordar agregarlo también en la interfaz pública. \n\nAquí hay un ejemplo:\n\n```typescript\ninterface User {\n id: number;\n name: string;\n email: string;\n password: string;\n createdAt: Date;\n role: 'admin' | 'user';\n}\n\n// ¿Cómo hacer para obtener un tipo sin password y createdAt?\n// Me gustaría algo como:\n// type PublicUser = ExcludeProperty;\n```\n\nHe probado usar `Omit`, pero no estoy seguro...