No geral, você deve usar apenas instruções ternárias quando a instrução resultante for curta. Caso contrário, escreva uma instrução if normal. O objetivo de um operador ternário é tornar seu código mais conciso e legível. Mover uma instrução if complexa para um operador ternário vai contra esse objetivo.
É bom usar o operador ternário?
Os operadores ternários não são ruins. No entanto, muitas pessoas optam por não usá-los porque podem ser difíceis de analisar à primeira vista. A expressividade que você obtém ao usar condicionais if/else é a mesma de um ternário - principalmente - mas permite uma melhor legibilidade.
Os operadores ternários são uma má prática?
O operador ternário condicional pode definitivamente ser usado em excesso, e alguns o acham bastante ilegível. No entanto, acho que pode ser muito claro na maioria das situações que uma expressão booleana é esperada, desde que sua intenção seja clara.
O ternário é melhor do que se?
Ternary é mais rápido então if/else desde que nenhuma computação adicional seja necessária para converter a lógica para us ternary. Quando é uma operação simplesmente ternária, tem melhor legibilidade também. Se apenas a instrução for mais rápida que if/else, então se a lógica não exigir uma instrução else, use-a.
O ternário é mais eficiente do que outro?
O operador ternário não devet diferir em desempenho de um equivalente bem escrito if / else… eles podem resolverpara a mesma representação na Árvore de Sintaxe Abstrata, sofrer as mesmas otimizações etc.