> That is unclear

I just want to minify the passed html string, but I got this incorrect mental 
model that tagged templates are just passing a string to a function. (And my 
incorrect mental model somehow gets corrected when considering params of that 
function. Yep, i’m inconsistent by nature :). I guess this comes from my 
write-as-little-as-possible OCD. :)

> but it's clear to me that template strings in ES6 (including String.raw) are 
> expressive enough to do what you need. Confirm?

You question got me thinking: String.raw({raw: templateObj}, …args) looks like 
a hack. if this is the solution es6 is offering. I’m a bit worried: the 
expression itself doesn’t convey developer’s intent very well.

I also start to think about use cases for tagged templates and whether 
developers are really likely to generate final strings directly from template 
objects (and use this hack a lot).

From what I read:

1. Get unescaped strings

This what String.raw is for. "new RegExp(String.raw`\s+${dynamic}`)” looks very 
appealing. So manual generation not needed here.

2. I18n

People probably need to generate a sprintf-like format string first: “Hello, 
%s” from the template object, and then get “Bonjour, %s” from a translation 
table, then replace the placeholders with args.

In this case, the final string is not generated directly from the template 
object. So hacking String.raw might not be needed very often, probably not a 
terrible idea.

However, this is does raise the question that is it a good idea to add a 
sprintf-like function to es6?


> On Dec 25, 2014, at 2:39 AM, Brendan Eich <[email protected]> wrote:
> 
> Glen Huang wrote:
>> I think I had been doing the whole thing wrong.
> 
> That is unclear, but it's clear to me that template strings in ES6 (including 
> String.raw) are expressive enough to do what you need. Confirm?
> 
> /be

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to