Elegant way to generate string from tagged template?

Gary Guo nbdd0121 at hotmail.com
Tue Dec 23 04:34:59 PST 2014


> From: curvedmark at gmail.com
> Date: Tue, 23 Dec 2014 14:55:57 +0800
>
> Given an array of [1,2,3] and other array of [“a”,”b”], it should return [1,”a”,2,“b”,3]. (probably a lot of edge cases to cover, but just ignore them for now).

I came up with an idea. Symmetric to String.raw, we can have a function that represents the default procedure.

```js
String.default=(a,...b)=>{
    let ret="";
    for(let i=0;ret+=a[i],i<b.length;ret+=b[i],i++);
    return ret;
};
```

So in semantics, String.default `Template` === `Template`. By introducing this, we can define a common procedure between tagged and untagged templates: untagged templates are equivalent to the tagged ones with tag String.default.

When implementing our own template functions, we can use:

```js
function custom(template, ...substitutions){
    // Perform actions on substitutions or template
    return String.default(template, ...substitutions);
}
```


 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20141223/7c391875/attachment-0001.html>


More information about the es-discuss mailing list