something(`.... ... ${values.foo} .. ...`)
something(`.. ..... ${values.bar} ... ..`)

こんな感じの処理で values.foo などの埋め込む値が 存在する (null, undefined じゃない) ときのみ something を実行したいことがたまにある

if (values.foo) {
something(`.... ... ${values.foo} .. ...`)
}
if (values.bar) {
something(`.. ..... ${values.bar} ... ..`)
}

なんか面倒な感じで something 呼び出しが 10 近くも並ぶと どうにかしたくなってくる
`` の埋め込みはタグ関数を使って関数で処理できるので

const F = (fn, ...args) => (tpls, ...values) => {
if (values.every(v => v != null)) {
fn(String.raw(tpls, ...values), ...args)
}
}

F(something)`.... ... ${values.foo} .. ...`
F(something)`.. ..... ${values.bar} ... ..`

スッキリはしたけど用途が限定的すぎる気も

something(fn`... .. ${values.foo} .. ....`)

上の形式にして fn では埋め込む値に undefined があれば全体を undefined で返す
something では undefined を受け取ると何もしないとする方が良さそう?
ただ something が自作でないなら undefined 対策にラッパー関数が必要になるし ラッパー関数作るならそこで分岐埋め込みもやったほうがいいのではという気持ちにもなる

const somethingWrapper = (cond, str) => {
if (cond != null) something(str)
}

somethingWrapper(values.foo, `... .. ${values.foo} .. ..`)

シンプルだけど values.foo を 2 回書くのだけが不満
`` を使った埋め込みで 2 回書かないならタグ関数必須のはずだし 結局上のに戻る