问题标签 [tagged-templates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何检测函数是正常调用还是作为标记模板文字调用?
我想创建一个可以正常调用的函数:
或作为标记的模板文字:
在 的实现中myFn
,是否可以检测它是否被正常调用或作为标记模板文字?传递给模板文字的参数具有一定的模式(第一个参数是一个字符串数组,其他参数,如果存在的话,将比第一个参数中数组的长度少一个),所以我可以根据这一点进行检测. 但是理论上有人可以将相同的参数模式传递给正常的函数调用。
除了参数模式检测之外,是否有任何特殊的方法来检测它的调用方式?
javascript - 尝试呈现标记的字符串文字时出错
我正在从 API 获取一些数据,然后对于返回的每个元素,我正在运行以下代码:
我期待浏览器能够理解和解析 de“content”变量中的 HTML 标签,但是这是我在浏览器中得到的:
显然我做错了什么。我该怎么做才能让浏览器理解 HTML 标记并按照我的预期对其进行格式化?
谢谢。
javascript - 标记模板以摆脱第一个换行符
我有这样的功能:
但是,它返回一个以新行开头的字符串。
我不想这样写:
有没有办法使用这个模板的标签来摆脱这个新行?
就像是:
javascript - 我可以从 test.each 标记模板文字中为另一个上下文捕获测试吗?
数百个使用 Jest 功能编写的用于验证计算的自动化测试jest.each
需要以另一种更清晰的形式呈现给决策者。一个典型的测试套件会像这样开始(示例编号):
我想*.test.js
从正在测试的 React 应用程序访问我的文件中的测试数据,以便获得许可的用户可以查看正在运行的自动化测试。
我曾希望做这样的事情:
test.each
然后在此处和应用程序中使用模板文字。然而,这似乎是不可能的?
javascript - 如何从String中获取qql表达式
我有一个带有 GraphQL 查询的字符串变量。我想编写一个函数来返回这个 gql 标签。能不能帮我写一下。例如:
输入:
输出:
javascript - 在 Javascript 中,如果我有一个很长的标记模板文字,如何包装它而不在结果字符串中放置换行符?
有很多类似的问题,但我不明白如何将它们应用于我的情况,所以我会尽量具体。例如,我有一个很长的标记模板文字;
当然,我不想在我的代码库中有这么长的一行,所以我想把它分解。分解长(未标记)模板文字有很多选项,例如使用+
. 我尝试使用它,但它与操作优先级混淆。如果我使用
那么标签只适用于my
. 如果我尝试(有或没有加号)
标签的功能停止工作。作为健全性检查,我打开浏览器控制台并定义;
如果我将其用作具有正常语法的标记,它会输出输入字符串。如果我使用括号,它会输出输入字符串的第一个字符。所以我不知道那里发生了什么。
我可以用
但这不允许第二行缩进,这和长行一样糟糕。
鉴于此,我不知道如何将用于分解长未标记模板文字的方法应用于标记模板文字。
如果它最终是相关的,我正在使用的函数是t
库ttag中的标签。
javascript - 如何创建标记模板文字并将参数传递给另一个标记模板文字?
假设我有
假设我想创建一个修改模板的“中间件”,然后改为调用 highlight:
所以我现在可以做类似的事情
我不知道如何highlight
从doMore
. 我该怎么做呢?
我的第一次尝试是使用...
运算符。但这没有用。具体来说,我正在尝试为 npmchalk
应用程序创建一个包装器,所以我做了类似的事情:
但这会引发错误:chalk_1.default.apply is not a function
. 平时做
但是使用扩展运算符调用它会引发此错误。
javascript - 高级模板字符串拆分
我刚刚发现这种拆分字符串的方法非常酷,但我不确定它为什么有效,任何人都可以向我解释一下。.split`` 而不是 .split("")
javascript - javascript中通用模板文字函数的标记
我的目标是编写一个标记模板函数,例如
...其行为类似于 javascript 中的默认模板文字函数。
我的第一次尝试是
但这很快就坏了……
必须有一种更简单的方法来做到这一点,我错过了?
javascript - Exp 后缀附加到标记模板 (JavaScript) 中的参数/变量
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templates
这是上面链接中的代码:
没有与 Exp 后缀相关的文档以及它如何能够调用具有相关前缀的变量。任何人都知道我可以在哪里了解更多信息或这里发生了什么?