Tengo problemas para agregar caracteres de nueva línea en una cadena que ya tiene nuevas líneas.
Por ejemplo:
const foo = "test\ntest"; const string = `mutation { some_field: "${foo}" }`;Esto se generará como:
mutation { some_field: "test test" }Pero quiero que salga como:
mutation { some_field: "test\ntest" } Donde se conservan los espacios en blanco/nuevas líneas existentes pero puede agregar una cadena como "test\ntest" dentro de él. Este salto de línea actual está causando errores de sintaxis.
Intenté sumar estas cadenas de varias formas, pero no sé cómo forzar a \n a permanecer \n en el valor del campo.
Cuando tiene \n en un literal de cadena de JavaScript, representa un carácter de nueva línea, no una barra invertida seguida de n. Si desea una barra invertida seguida de n, debe escapar del carácter de barra invertida con otro carácter de barra invertida. Es decir, debe poner \n en el literal de cadena.
const foo = "test\\ntest"; const string = `mutation { some_field: "${foo}" }`; console.log(string)Debe poner literal \n en la cadena escapando de la barra invertida.
const foo = "test\\ntest"; const string = `mutation { some_field: "${foo}" }`; console.log(string);Pero esto parece que está lleno de peligros. Es casi seguro que debería usar JSON, no una plantilla literal.
const foo = "test\ntest"; const string = `mutation ${JSON.stringify({ some_field: foo }, null, 4)}`; console.log(string);