#javascript
#javascript
Вопрос:
У меня есть следующая функция
const taskErrorMessage = (task, reason) => {
const account = task.account;
return {
message: `ERROR. ACTION: ${task.action}. ACCOUNT: ${account._id},
${account.name}. REASON: ${reason}. DATE:
${new Date()}`
}
}
Он не помещается в одну строку, поэтому я разбиваю его с помощью
однако кажется, что если я попытаюсь добавить отступ, конечная строка будет неверной с нежелательными пробелами. Есть ли способ разбить строку на несколько строк с сохранением отступа?
Комментарии:
1. Нужно ли это решать в javascript? Или мы можем использовать HTML и CSS?
Ответ №1:
Для простых шаблонных литералов пробелы в начале строк всегда интерпретируются буквально, поэтому их нельзя использовать для отступа кода.
Если вы хотите, чтобы все пробелы были свернуты, вы могли бы имитировать эту функциональность с помощью помеченного литерала шаблона:
const $_ = (strings, ...vals) => {
let result = ''
strings.forEach((str, idx) => {
result = str
if (typeof vals[idx] !== 'undefined')
result = vals[idx]
})
return result.trim().replace(/s /g, ' ')
}
console.log(
$_`hooray
indents for every
${1}
`
)
Однако обратите внимание, что это будет выполняться во время выполнения, а не во время компиляции. Вряд ли это будет узким местом в производительности, если вы не создаете сотни тысяч строк таким образом, но все равно стоит подумать.
Комментарии:
1. Я пробовал буквальные разрывы строк, и это нарушает строку, которая мне не нужна
2. Я отредактировал свой ответ с возможным решением, если вы не возражаете против снижения производительности.