En los literales de plantilla es6, ¿cómo se puede ajustar un literal de plantilla largo a varias líneas sin crear una nueva línea en la cadena?
Por ejemplo, si haces esto:
const text = `a very long string that just continues
and continues and continues`
Luego creará un nuevo símbolo de línea para la cadena, como si se interpretara que tiene una nueva línea. ¿Cómo se puede ajustar la plantilla larga literal a varias líneas sin crear la nueva línea?
javascript
ecmascript-6
template-literals
Ville Miekk-oja
fuente
fuente
Respuestas:
Si introduce una continuación de línea (
\
) en el punto de la nueva línea en el literal, no creará una nueva línea en la salida:fuente
1.1k Airbnb library
and continues...
tiene que comenzar desde la posición 0 en la nueva línea, rompiendo la regla de sangría.Este es uno viejo. Pero surgió. Si deja espacios en el editor, los colocará allí.
solo haz el símbolo + normal
fuente
Podrías comer los saltos de línea dentro de tu plantilla literal.
fuente
prettier
) configurado en su IDE.prettier
envuelve esto de nuevo a una sola línea.EDITAR : He creado un pequeño módulo NPM con esta utilidad. Funciona en la web y en Node y lo recomiendo ampliamente sobre el código en mi respuesta a continuación, ya que es mucho más robusto. También permite preservar nuevas líneas en el resultado si las ingresa manualmente como
\n
, y proporciona funciones para cuando ya usa etiquetas literales de plantilla para otra cosa: https://github.com/iansan5653/compress-tagSé que llego tarde para responder aquí, pero la respuesta aceptada todavía tiene el inconveniente de no permitir sangrías después del salto de línea, lo que significa que aún no puede escribir código de aspecto agradable simplemente escapando de las nuevas líneas.
En cambio, ¿por qué no usar una función literal de plantilla etiquetada ?
Luego puede etiquetar cualquier plantilla literal en la que desee tener saltos de línea:
Esto tiene el inconveniente de posiblemente tener un comportamiento inesperado si un futuro desarrollador no está acostumbrado a la sintaxis de la plantilla etiquetada o si no usa un nombre de función descriptivo, pero por ahora parece ser la solución más limpia.
fuente
Otra opción es usar
Array.join
, así:fuente
Usa lo viejo y lo nuevo. Los literales de plantilla son geniales, pero si desea evitar largos literales para tener líneas de código compactas, conéctelos y ESLint no causará problemas.
fuente
Similar a la respuesta de Doug, esto es aceptado por mi configuración TSLint y no se ve afectado por mi formateador automático IntelliJ:
fuente
La solución propuesta por @CodingIntrigue no me funciona en el nodo 7. Bueno, funciona si no uso una continuación de línea en la primera línea, de lo contrario falla.
Probablemente esta no sea la mejor solución, pero funciona sin problemas:
fuente