No estoy seguro de cómo titular esta pregunta, pero se trata de un patrón en el que || El operador se utiliza para resolver una secuencia de valores indefinidos en el primero definido.
¿Son estos equivalentes?
export function getRuntime(): Runtime { return runtime || findWindow() || mockWindow; }y
export function getRuntime(): Runtime { if (runtime) return runtime; if (findWindow()) return findWindow(); return mockWindow; }Ambos fragmentos de código hacen lo mismo que || y return es simplemente hacer lo mismo que regresar de las sentencias if .
La única diferencia entre los dos es que si findWindow() devuelve un valor que se considera true en JavaScript, se ejecutará dos veces. Este "problema" solo ocurre en el segundo.
Sí, ambas funciones hacen lo mismo.