我了解ES6的语法标记模板 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings#Tagged_template_strings。我没有看到的是实际可用性。什么时候比传递对象参数更好,比如中的设置jQuery 的 AJAX http://api.jquery.com/jquery.ajax/? $.ajax('url', { /*this guy here*/ })
现在我只看到了棘手的语法,但我不明白为什么我需要/使用它。我还发现 TypeScript 团队选择在其他重要功能之前实现它(在 1.5 中)。标记字符串模板背后的概念是什么?
您可以使用标记模板来构建比常规函数调用更具表现力的 API。
例如,我正在研究一个概念验证库 https://github.com/jwhitfieldseed/prequel对于 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 - 标记模板可以插入输入的区域设置敏感版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)