Причина, по которой этот стиль можно использовать (и, возможно, почему он был использован здесь), заключается в том, что _
он на один символ короче, чем()
.
Дополнительные круглые скобки относятся к той же проблеме стиля, что и дополнительные фигурные скобки. . По большей части это вопрос вкуса и стиля кода, но здесь отдается предпочтение многословию из-за согласованности.
В то время как стрелочные функции допускают использование одного параметра без скобок, это несовместимо с нулевым, одним деструктурированным, одним остаточным и несколькими параметрами:
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) => { ... };
По причинам, перечисленным выше, я лично считаю _ => { ... }
стиль кода плохим тоном, которого следует избегать.