Saltar al contenido

Uso de la variable _ (guion bajo) con funciones de flecha en ES6/Typescript

Contamos con tu ayuda para compartir nuestras crónicas sobre las ciencias informáticas.

Solución:

La razón por la que se puede usar este estilo (y posiblemente por la que se usó aquí) es que _ es un carácter más corto que ().

Los paréntesis opcionales tienen el mismo problema de estilo que los corchetes opcionales. Esta es una cuestión de gusto y estilo de código en su mayor parte, pero aquí se favorece la verbosidad debido a la consistencia.

Si bien las funciones de flecha permiten un solo parámetro sin paréntesis, es inconsistente con cero, solo desestructurado, solo descanso y múltiples parámetros:

let zeroParamFn = () =>  ... ;
let oneParamFn = param1 =>  ... ;
let oneParamDestructuredArrFn = ([param1]) =>  ... ;
let oneParamDestructuredObjFn = ( param1 ) =>  ... ;
let twoParamsFn = (param1, param2) =>  ... ;
let restParamsFn = (...params) =>  ... ;

A pesar de que is declared but never used el error se corrigió en TypeScript 2.0 para los parámetros subrayados, _ también puede desencadenar unused variable/parameter advertencia de un linter o IDE. Este es un argumento considerable en contra de hacer esto.

_ se puede usar convencionalmente para parámetros ignorados (como ya se explicó en la otra respuesta). Si bien esto puede considerarse aceptable, este hábito puede resultar en un conflicto con _ El espacio de nombres de guión bajo/Lodash también parece confuso cuando hay varios parámetros ignorados. Por esta razón, es beneficioso tener parámetros subrayados correctamente nombrados (admitidos en TS 2.0), también ahorra tiempo al averiguar la firma de la función y por qué los parámetros se marcan como ignorados (esto desafía el propósito de _ parámetro como acceso directo):

let fn = (param1, _unusedParam2, param3) =>  ... ;

Por las razones enumeradas anteriormente, yo personalmente consideraría _ => ... estilo de código un mal tono que debe evitarse.

El () la sintaxis transmite mejor la intención en mi humilde opinión y también es más específica del tipo

No exactamente. () dice que la función no espera ningún argumento, no declara ningún parámetro. Las funciones .length es 0

Si utiliza _, establece explícitamente que a la función se le pasará un argumento, pero que no le importa. Las funciones .length será 1, lo que podría ser importante en algunos marcos.

Entonces, desde la perspectiva del tipo, podría ser algo más preciso (especialmente cuando no lo escribe con any pero, digamos, _: Event). Y como dijiste, es un carácter menos para escribir, que también es más fácil de alcanzar en algunos teclados.

creo _ => se acaba de usar () => porque _ es común en otros lenguajes donde no se permite simplemente omitir parámetros como en JS.

_ es popular en Go y también se usa en Dart para indicar que se ignora un parámetro y probablemente otros que no conozco.

Sección de Reseñas y Valoraciones

Si piensas que ha resultado de utilidad nuestro artículo, sería de mucha ayuda si lo compartes con más desarrolladores de esta manera contrubuyes a extender este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *