Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda