Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

182
Vistas
¿Manejar una clase con una gran cantidad de parámetros?

Así que estoy teniendo dificultades para manejar una gran cantidad de propiedades de clase. Estoy creando un "componente" y quiero que este "componente" sea lo más personalizable posible. Al hacerlo, termino teniendo que lidiar con esto:

 constructor({ embeds = [], message = null, client = null, isSelectable = false, skip = true, timeout = 10000, isCallback = true, max = 10, results = [], hasPageNumber = true, start = 0, identifiers = ['1️⃣','2️⃣','3️⃣','4️⃣','5️⃣','6️⃣','7️⃣','8️⃣','9️⃣','🔟','1️⃣1️⃣','1️⃣2️⃣','1️⃣3️⃣','1️⃣4️⃣','1️⃣5️⃣','1️⃣6️⃣','1️⃣7️⃣','1️⃣8️⃣','1️⃣9️⃣','2️⃣0️⃣'], undefinedResultValue = 'Unknown Result', useIdentifiers = true, innerPageOptions = { message: message, client: client, hasPageNumber: hasPageNumber, skip: skip, timeout: timeout, start: start, isSelectable: isSelectable, embeds: null } })

El código anterior funciona bien, pero es horrible de ver y siento que las personas han encontrado problemas similares a este. Quiero limitar la cantidad de propiedades y, al mismo tiempo, hacer que el "componente" sea lo más personalizable posible. También estoy tratando de concentrarme mucho en hacer que mi código sea lo más limpio posible y realmente no tengo a nadie que me ayude con este tipo de problemas y se necesita experiencia para resolverlos.

Cada propiedad se utiliza, algunas más que otras y algunas con más efecto. Pensé en colapsar algunos valores en otro subobjeto, pero este es solo un resultado alternativo que es muy similar al que ya tengo.

Estructura de clase para obtener más detalles sobre lo que tengo, los métodos de clase se han excluido debido a que están obsoletos para este problema:

 export class PageEmbed{ constructor(options: Options | SearchOptions) private options: Options | SearchOptions private content: MessageEmbed[] private display: SearchDisplayProperties private index: number } export class Page extends PageEmbed{ constructor(options: PageOptions) private message : Message } export class SearchPage extends PageEmbed{ constructor(_options: SearchOptions) private inner: Options public page: Page }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede buscar algunas combinaciones de parámetros comunes o predeterminados y agregarlos en algún lugar de su código. También podría implementar las fábricas para simplificar la creación de instancias. La idea general es:

 const DEFAULT_PROPS = { embeds = [], message = null, client = null, isSelectable = false, skip = true, timeout = 10000, isCallback = true, max = 10, results = [], hasPageNumber = true, start = 0, } class MyFactory { props = DEFAULT_PROPS mutate (newProps) { this.props = { ...this.props, ...newProps } return this } create() { return new MyClassWithProps (this.props) } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda