Por que o JSHint não gosta de ternários para chamadas de método em objetos?
JSHint fornece o seguinte erro:
Esperava uma atribuição ou chamada de função e, em vez disso, viu uma expressão.
Para a seguinte linha de código:
(aFunctionOrNull) ? aFunctionOrNull() : someObject.someMethod();
Ele destaca a final)
emsomeMethod
então presumo que o erro esteja lá. O código funciona e o JSHint não tem um problema quando o altero paraif () {} else {}
sintaxe. Não me importo com a sintaxe mais longa, mas gostaria de saber por que o JSHint diz isso e se isso é uma prática ruim.
A maior confusão pode vir da terminologia. ÉsomeObject.someMethod()
não é uma chamada de função?