La instrucción with() está más o menos eliminada del Javascript moderno. No está disponible en modo estricto y módulos ES6, TS todo lo que se carga en modo estricto. Entonces, ¿de qué sirve poner variables desconocidas en un ámbito?
Por ejemplo:
function renderTemplateString(template, data) { let func with(data) { func = () => eval('`' + template + '`') } try { return func() } catch (error) { return `Error in Template ${template}: ${error} in ${JSON.stringify(data)}` } } console.log(renderTemplateString("foo: ${foo}", {foo: 'bar'})) // or more realistic: saveToSearchIndex(templateStringConfigurationOfTheApp, dataFromAnOtherPartOfTheLibrary) ¿Puede el mismo efecto (poner todos los data en el alcance de eval() ) archivarse sin?