Как включить круглые скобки ()
в строке при использовании шаблонов?
В настоящее время его продукция:
Test Yes Test
Я ожидаю, что так выйдет с круглыми скобками:
Test (Yes) Test
Код:
let type = "Yes";
let string = 'Test ${type? (type) : ''} Test';
console.log(string);
Шаблон можно использовать в шаблоне
const type = 'yes';
const string = 'Test ${type? '(${type})' : ''} Test';
console.log(string)
Вам нужно указать, что скобки являются частью строки, а не просто порядком операций.
let string = 'Test ${type? "(" + type + ")": ''} Test';
Вы можете обернуть весь placeholder
:
let type = 'yes';
let string = 'Test (${type? type : ''}) Test';
console.log(string)
Или если вам не нужно включать его, если тип является ложным, тогда вы можете выполнить их с помощью +
или использовать вложенный placeholder:
let type = 'Yes';
let string = 'Test ${type ? '(${type})' : ''} Test';
console.log(string)
И просто для удовольствия вы можете написать шаблон Tagged, чтобы сделать его более многоразовым:
function myTag(strings, ...values) {
let result = '';
strings.forEach((string, i) => {
// strings will always be +1 length over values as per the spec
const value = values[i] ? '(${values[i]})' : ''
result += string + value;
});
return result;
}
const test1 = "Yes";
const result1 = myTag'Test ${test1} Test';
console.log(result1);
const test2 = null;
const result2 = myTag'Test ${test2} Test';
console.log(result2);
type
имеет значение null или не определено.