Powodem, dla którego można użyć tego stylu (i prawdopodobnie dlatego został tutaj użyty) jest to, że _
jest o jeden znak krótszy niż ()
.
Opcjonalne nawiasy to ten sam problem ze stylem, co opcjonalne nawiasy klamrowe . Jest to w większości kwestia gustu i stylu kodu, ale w tym przypadku preferowana jest szczegółowość ze względu na spójność.
Podczas gdy funkcje strzałkowe pozwalają na pojedynczy parametr bez nawiasów, jest to niespójne z zerem, pojedynczą zniszczoną, pojedynczą resztą i wieloma parametrami:
let zeroParamFn = () => { ... };
let oneParamFn = param1 => { ... };
let oneParamDestructuredArrFn = ([param1]) => { ... };
let oneParamDestructuredObjFn = ({ param1 }) => { ... };
let twoParamsFn = (param1, param2) => { ... };
let restParamsFn = (...params) => { ... };
Chociaż is declared but never used
błąd został naprawiony w TypeScript 2.0 dla podkreślonych parametrów, _
może również wyzwalać unused variable/parameter
ostrzeżenie z lintera lub IDE. To poważny argument przeciwko temu.
_
może być konwencjonalnie używane dla ignorowanych parametrów (jak już wyjaśniono inną odpowiedź). Chociaż można to uznać za akceptowalne, ten nawyk może powodować konflikt z _
przestrzenią nazw Underscore / Lodash, a także wygląda myląco, gdy istnieje wiele ignorowanych parametrów. Z tego powodu korzystne jest posiadanie odpowiednio nazwanych podkreślonych parametrów (obsługiwanych w TS 2.0), oszczędza również czas na ustalaniu sygnatury funkcji i dlaczego parametry są oznaczane jako ignorowane (jest to sprzeczne z celem _
parametru jako skrótu):
let fn = (param1, _unusedParam2, param3) => { ... };
Z powodów wymienionych powyżej osobiście _ => { ... }
uważałbym styl kodu za zły ton, którego należy unikać.