我了解ES6的语法tagged templates 。我没有看到的是实际可用性。什么时候比传递对象参数更好,比如 jQuery's AJAX 中的设置? $.ajax('url', {/*这家伙在这里*/})
现在我只看到了棘手的语法,但我不明白为什么我需要/使用它。我还发现 TypeScript 团队选择在其他重要功能之前实现它(在 1.5 中)。标记字符串模板背后的概念是什么?
最佳答案
您可以使用标记模板来构建比常规函数调用更具表现力的 API。
例如,我正在处理 proof-of-concept library对于 JS 数组的 SQL 查询:
let admins = sql`SELECT name, id FROM ${users}
WHERE ${user => user.roles.indexOf('admin') >= 0}`
注意它与字符串插值无关;它使用标记模板以提高可读性。很难用简单的函数调用来构建直观地读取的东西 - 我猜你会有这样的东西:
let admins = sql("SELECT name, id FROM $users WHERE $filter",
{ $users: users, $filter: (user) => user.roles.contains('admin') })
这个示例只是一个有趣的副项目,但我认为它显示了标记模板的一些好处。
另一个例子,也许更明显,是 i18n - 标记模板可以插入输入的区域设置敏感版本。
关于javascript - ES6 标记模板实用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43568426/