Para algo como lo siguiente:
"use strict"; let a = 1; console.log(eval(` a++; let b=4; `)); console.log(`a=${a}, b=${b}`); // ReferenceError: b is not defined ¿Es posible hacer algo donde se imprime undefined o algo si la variable no está allí en lugar de arrojar un error? Algo conceptualmente como:
console.log(`a=${a}, b=$?.{b}`)El marcador de posición debe contener una expresión y no parece haber una forma idiomática de usar una variable indefinida (probablemente debido a un error de análisis), por lo que elegiría un getter en lugar de usar una variable sin formato.
Por ejemplo antes de acceder a b puedes escribir
let getB = function () { return (typeof b !== "undefined")? b :undefined; } Luego, en el literal de la plantilla, puede escribir ${getB} .