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

222
Visualizações
Texto mecanografiado: una forma más sencilla de escribir un objeto en la transformación de matriz

Estoy convirtiendo ciertas propiedades de un objeto a una matriz.

 const result = ({ a, b }: { a: string, b: number }) => [a, b]; // (string | number)[]

Sin embargo, la forma estándar siempre devuelve un tipo de texto mecanografiado insuficiente (string | number)[]

Siempre tengo que especificar mi tipo de salida para que escriba correctamente el resultado.

 const result = ({ a, b }: { a: string, b: number }): [string, number] => [a, b]; // [string, number]

¿Hay una manera más sencilla?

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Simplemente agregue como const después de crear la matriz; esto se denomina aserción const. Indica que la matriz recién creada es en realidad una tupla, lo cual tiene que ser si va a contar con que tenga 2 elementos donde el primero es una cadena y el segundo es un número.

 // readonly [string, number] const result = ({ a, b }: { a: string, b: number }) => [a, b] as const;

La única diferencia entre esto y el ejemplo en su pregunta original es que el tipo resultante será de solo lectura . No habrá forma de alterar el valor del resultado a menos que haga una afirmación específica que lo permita.

about 4 years ago · Juan Pablo Isaza Relatório

0

No se puede escapar del hecho de que tiene que agregar un poco de verbosidad para recuperar un tipo de tupla. Puede crear una función de ayuda que genere tipos de tupla a partir de literales de matriz; ya sea que sea preferible declarar const o la firma de retorno directamente, depende de usted:

 const asTuple = <T extends [any, ...any]>(array: T) => array; const objectToTuple = ({ a, b }: { a: string, b: number }) => asTuple([a, b]); const result = objectToTuple({a: "a", b: 1}) // [string, number]
about 4 years ago · Juan Pablo Isaza Relatório

0

Que yo sepa, no lo hay.

Puede hacer [a, b] as [string, number] pero básicamente es la misma verbosidad. Otra alternativa es dar result un tipo de función, pero eso es solo mover el "problema" aquí.

Además, agregar esa pequeña declaración de tipo de retorno no es tan malo. No hay mucho más que TS pueda hacer, ya que no puede asumir que desea una [string, number] de forma predeterminada. Eso estaría lejos de ser compatible con versiones anteriores (o incluso deseado por la mayoría de las personas).

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