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

176
Vistas
JS/TS ¿Diferencia entre definiciones de funciones en el objeto?

Un problema específico solucionado fue el desajuste de la declaración de la función. Me pregunto, en mi caso específico, cuál es la diferencia entre

 const obj => { thing1: () => void //This is type thing1: () => undefined thing2(){ return; } //This is type thing2(): void };

No veo ninguna diferencia entre los dos. Uno es un atributo de objeto que contiene una función lambda y el otro es una función declarada en el objeto. ¿Por qué son de diferentes tipos?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Su código de ejemplo no es válido, pero voy a asumir que quiso decir esto:

 const obj = { thing1: () => undefined, thing2() { return }, };

El tipo de thing1 es:

 (property) thing1: () => undefined

Esta es una propiedad de obj que tiene el valor de una función. Esa función es una función de flecha que devuelve undefined . Las funciones de flecha capturan el valor de this desde el ámbito de declaración. Entonces this podría ser cualquier cosa, desde el tipo solo no se puede decir. Sin embargo, lo que esto le dice es que no necesita preocuparse por el valor de this , ya que está vinculado a la declaración de la función. Esto significa que podría interrumpirlo y pasarlo como una devolución de llamada como:

 obj.thing1() // `this` is whatever `this` was when the function was declared. const fn = obj.thing1 fn() // `this` is whatever `this` was when the function was declared.

thing2 se escribe como:

 (method) thing2(): void

En este caso, thing2 es un método de obj que devuelve un valor que no debe usarse. En realidad, no está undefined , pero en lo que respecta al tipo, devuelve un valor de retorno inutilizable.

Y aquí this no está limitado para usted, y en su lugar se establece llamando a la sintaxis:

 obj.thing2() // ^ this dot sets the value of `this` in `thing2()`.

Si tuviera que hacer la misma prueba anterior aquí:

 obj.thing2() // `this` is `obj` const fn = obj.thing2 fn() // `this` the global object, which is probably not good.
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