А как же
let x,y;
const templateString = [x,y].filter(a => a).join(' ');
Что он делает, что сначала помещает ваши свойства в массив [].
Затем он фильтрует неопределенные элементы.
Последнее создает строку массива, используя join
с пробелом.
Таким образом, либо x
, либо y
может быть неопределенным.