Skip to content
Advertisement

How do I use newline characters in an interpolated string with newlines?

I am having issues adding newline characters into a string that already has newlines.

For example:

const foo = "testntest";
const string = `mutation {
   some_field: "${foo}"
}`;

This will be output as:

mutation {
   some_field: "test
test"
}

But I want it to output as:

mutation {
   some_field: "testntest"
}

Where the existing white-space/newlines are preserved but you can add a string like "testntest" inside of it. This current line-breaking is causing syntax errors.

I have tried adding together these strings in various different ways but I can’t figure out how to force n to remain n in the field value.

Advertisement

Answer

When you have n in a JavaScript string literal, it represents a newline character, not a backslash followed by n. If you want a backslash followed by n, you have to escape the backslash character with another backslash character. That is, you have to put n in the string literal.

const foo = "test\ntest";
const string = `mutation {
   some_field: "${foo}"
}`;

console.log(string)
User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement