Причина, по которой этот стиль можно использовать (и, возможно, почему он был использован здесь), заключается в том, что _он на один символ короче, чем() .
Дополнительные круглые скобки относятся к той же проблеме стиля, что и дополнительные фигурные скобки. . По большей части это вопрос вкуса и стиля кода, но здесь отдается предпочтение многословию из-за согласованности.
В то время как стрелочные функции допускают использование одного параметра без скобок, это несовместимо с нулевым, одним деструктурированным, одним остаточным и несколькими параметрами:
let zeroParamFn = () => { ... };
let oneParamFn = param1 => { ... };
let oneParamDestructuredArrFn = ([param1]) => { ... };
let oneParamDestructuredObjFn = ({ param1 }) => { ... };
let twoParamsFn = (param1, param2) => { ... };
let restParamsFn = (...params) => { ... };
Хотя is declared but never usedошибка была исправлена в TypeScript 2.0 для подчеркнутых параметров, _также может запускатьсяunused variable/parameter предупреждение от линтера или IDE. Это веский аргумент против этого.
_можно условно использовать для игнорируемых параметров (как уже объяснялся другой ответ). Хотя это можно считать приемлемым, такая привычка может привести к конфликту с _пространством имен Underscore / Lodash, а также сбивает с толку, когда есть несколько игнорируемых параметров. По этой причине полезно иметь правильно названные подчеркнутые параметры (поддерживаются в TS 2.0), а также экономит время на выяснение сигнатуры функции и на то, почему параметры помечены как игнорируемые (это противоречит назначению _параметра как ярлыка):
let fn = (param1, _unusedParam2, param3) => { ... };
По причинам, перечисленным выше, я лично считаю _ => { ... }стиль кода плохим тоном, которого следует избегать.