如何从webpack编译的模板字面上删除\n和\t?
我正在开发一个JavaScript插件,该插件使用ES6模板文字生成模板,我在插件中附加了一块代码. "use strict"; (function () { window.project = { template: { generateHtmlTemplate: function(data) { var template = ` `; return template; } } } 当我尝试通过webpack babel将其构建到ES5时,因此模板文字如下.这是 webp
8 2024-03-26
编程技术问答社区
ES6:创建ASCII字符串的错误字符转义序列
这是我的代码: let padded = "03"; ascii = `\u00${padded}`; 但是,我从Babel收到Bad character escape sequence.我试图最终以: \u0003 在ascii变量中.我在做什么错? 编辑: 最终以ascii = (eval('"\\u00' + padded + '"')); 解决方案 我在做什么错? 一个Unicode逃生序列基本上是原子.您不能真正动态地构建一个.模板文字基本上执行字符串串联,因此您的代码等同于 '\00' + padded 现在应该很明显为什么您会遇到错误.如果要获得相应的unicode字符,则可以使用 String.fromCodePoint 或 String.fromCharCode : String.fromCodePoint(3) 如果您想要字面的字符串包含字符序列\u0003,那么您只需要逃脱逃生字符即可产生字面的
24 2024-03-07
编程技术问答社区
如何在数组中存储包含模板字样的字符串(Javascript)?
我正在尝试将大量文本存储在数组中(因此我可以使用一个值轻松将其拉出). 问题在于我想使用模板文字的字符串中,因此字符串根据输入而更改(例如,一旦添加了名称,它就会使用其名称. 如果我将字符串包括在功能中,我可以毫无问题.例如: textbox.textContent = `what does ${nameTemp} do?`; 毫无问题,它将" Nametemp"更改为用户输入的内容.但这在下面没有!它总是返回" tim"为名称(" nametemp"的默认值) textbox.textContent2 = Title[1]; 您可以在下面的代码中在函数savename()中看到第一行(包含模板包含模板的完整字符串确实可以工作.不更新.它使用默认字符串" tim". 我究竟做错了什么?我如何最好地将弦乐器存储在具有可观元素的阵列中?在此先感谢您的任何建议. var nameTemp = `tim`; let Title = []; Title[0]
18 2024-03-06
编程技术问答社区
我试图在javascript中列出一个数组的所有NESTED值,但只得到数组中每个值的第一个。
我是模板文字,映射和JavaScript的新手.我有一个数组,我正在使用模板文字将DIV插入HTML.我正在绘制4张专辑的阵列.在数组中,我有每张专辑的曲目列表.我正在尝试一次列出每张专辑的一个曲目列表.当我运行代码时,我只能获得每张专辑的第一个曲目,而不是第一张专辑的第一曲目列表.如何在数组的第一个巢中列出所有值?代码如下: 在 // JavaScript Document var albumData =[ { "imageUrl": "music_imgs/covers/genpx1.png", "artist": "Gen1artist", "name": "Gen1name", "release":"released 2017", "tracks":[ { "TrackNumber": "1", "link":"media/file_example_MP3_700KB.mp3", "song":"Ge
14 2024-03-06
编程技术问答社区
使用map()时出现了意外的逗号
我有一个带有元素列表的数组,我正在尝试使用模板字符串将此列表附加到HTML元素: 在 var description = [ 'HTML & CSS', 'Javascript object-oriented programming', 'Progressive Web apps (PWAs)', 'Website Performance Optimization', 'Webpack and Gulp workflows', 'Fullstack React.js', 'Web Components', 'Responsive web design', 'Sketch design', 'GraphQL and Relay' ] $('body').append( ` ${description.map( function(work
10 2024-03-04
编程技术问答社区
在Typescript中嵌套模板字符串
我正在尝试从对象检索变量. cell: (row: any) => `${row.testcolumn}` 我唯一的问题是,我不知道" testColumn"是什么,因为我动态地进行此操作.我不确定该怎么做,我尝试的嵌套模板字符串策略不会编译. cell: (row: any) => `${row.(`${varString}`)}` 我还尝试过仅使用变量名而不是嵌套模板字符串,但这只是在对象中寻找不存在的varstring值.有什么方法我可以使用嵌套的文字将字符串值替换为模板文字,并且仍然在寻找行.TestColumn而不是行. 解决方案 对于模板文字与常规JS相同.可以用括号表示法动态检索对象属性,row[varString]. 将是: cell: (row: any) => `${row[varString]}`
20 2024-02-21
编程技术问答社区
将事件侦听器添加到模板中的按钮字面
我将此模板字面插入带有foreach循环的表中.我如何将活动侦听器连接到每个迭代中的按钮? 这只是将事件侦听器附加到表中的第一个按钮: function renderMenu(doc) { const table = ` ${doc.data().number} ${doc.data().name} ${doc.data().ingredients} ${doc.data().price} ${doc.data().category} Delete ` menu.insertAdjacentHTML('beforeend',
32 2024-01-19
编程技术问答社区
包含ForEach的模板文字
是否可以在模板文字中返回ForEach中的字符串值,以便在该位置添加?因为如果我记录它,它将返回undefined.还是完全不可能输入? return ` Change the exchange ${Object.keys(obj).forEach(function (key) { return "" + obj[key] + "
12 2024-01-12
编程技术问答社区
网络组件中的模板HTML和模板字符串
最好使用HTML模板(然后是HTML导入)创建Web组件或使用模板字符串?这些方法的利弊是什么? 解决方案 使用 HTML模板文件更适合重复使用:可以在不同的Web组件中使用相同的文件.另外,它们在大多数IDE中都更好地显示,因为它们被认为是完整的HTML代码. 使用模板字符串更快(内联).他们不依赖于每个浏览器供应商未采用的HTML进口.另外,您可以使用 template fleatal 直接插入值DOM中的JavaScript变量 实际上没有太多的衍射,因为上面的每个差异列表都有一个解决方法(即,如果将模板字符串保存为文本文件,则可以重复使用模板字符串,也可以将HTML模板加载到our html导入). ). ).
14 2023-11-29
编程技术问答社区
visual studio代码语法高亮显示html字符串?
我已经试图解决这个问题已有3天了,但是我似乎找不到任何扩展名的语法要突出显示使用了反击的字符串(我不知道这种类型的一般术语是什么字符串).但是,如果没有扩展名来启用这种字符串的语法亮点,那么是否有Vscode的设置可以使我能够语法higlight? 解决方案 跟进马特·比尔纳(Matt Bierner)以前的答案. 您应该使用此Visual Studio代码扩展名: angular2-inline 此扩展名替换语言-VSCODE-JAVASCRIPT-ANGULAL2扩展. 这是带有如何安装的扩展页面 https://marketplace.visualplace.visualstelle.visualstelle.com/itemstplace.itemnemnemnemnemnemnememnememnememnememnememnememnememnememementementementewallace.angular2-inlineline 其
30 2023-11-24
编程技术问答社区
如何从标签函数中调用本地ES6模板字符串替换?
我正在为模板文字编写ES6标签函数,该函数首先检查字符串中的条件,如果找不到条件,则仅将模板文字解释为单位词,就好像没有标记.我很好奇是否可以从我的标签函数来调用浏览器的本机模板字面函数(我认为这比我自己实现的函数更快).奖励:这样,标签构图没有机会,例如htmlescape(unrindent foobar); 例如. function dumbTag(strs, ...vals) { vals = vals.map((val,i) => (i % 2 == 0 ? 'even:' : 'odd:')+val); return String.template(strs, ...vals); } 我自己的实现功能 - 有没有更快的方式/调用浏览器的方法? function template(strs, ...vals) { let result = strs[0]; for (let [i,val] of va
8 2023-11-13
编程技术问答社区
类型化的字符串字面,有联合的排列方式,但没有重复的内容
我有以下联合: type Letter = 'a' | 'b' | 'c' | 'd' | 'e' 我想使用模板字面类型允许1-3个字母的排列: type Variation = Letter | `${Letter}-${Letter}` | `${Letter}-${Letter}-${Letter}` 在预防重复的字母的同时,我如何在打字稿中实现此目标,因此" a" a" b-d"" a-c-d"和" d-c-a"是可以的,但是不允许" a-a-a-c". 解决方案 type Letter = 'a' | 'b' | 'c' | 'd' | 'e' type Variation = (T extends `${infer A}-${infer B}` ? (B extends `${infer BA}-${infer BB}` ? ( `${A}-${Exclude
24 2023-11-06
编程技术问答社区
将ES6的单字节码字元与ES6的模板字元结合起来
如果我想在ES6/ES2015 JavaScript中打印一个Unicode中文角色,我可以做到这一点: console.log(`\u{4eb0}`); 同样,如果我想将变量插入模板字符串文字中,我可以做到这一点: let x = "48b0"; console.log(`The character code is ${ x.toUpperCase() }.`); 但是,似乎我无法将两者结合起来打印一个连续40个Unicode汉字的列表.这行不通: for (let i = 0, firstCharCode = parseInt("4eb0", 16); i
24 2023-11-06
编程技术问答社区
如何将属性类型设置为TypeScript中类型名称的文字表示?
说,我有这些类和界面: class Foo {} interface Bar {} 我想创建具有指定类型的属性名称的这样的type: type DynamicPropertyName = ... ; // desire: {Foo: any} type WithPropBar = DynamicPropertyName; // desire: {Bar: any} 而不是any,我将指定我的类型,这很容易. 第三条评论后的upd 至少,也许可以得到这个: type WithPropFoo = DynamicPropertyName; // desire: {type: 'Foo'} type WithPropBar = DynamicPropertyName; // desire:
44 2023-11-01
编程技术问答社区
如何使用模板类型项目生成数组
我有我想安全的uno卡甲板. 甲板阵列中的每个卡都由构成颜色和值的2个char字符串表示.我正在使用Template Literal Type CardType. type SpecialCard = "S" | "R" | "D"; // Skip | Reverse | Draw 2 type NumberCard = number; type Color = "R" | "Y" | "G" | "B"; type WildCard = "W" | "W4"; type CardType = `${Color}${(NumberCard | SpecialCard)}` | WildCard; 现在我想创建一组这样的卡: const StandardDeck: CardType[] = (["R", "Y", "G", "B"] as Color[]) .map((color) => [0, 1, 2, 3, 4, 5, 6, 7,
22 2023-11-01
编程技术问答社区
用点表示法省略打字稿
现在在Typescript中支持模板类型,是否可以具有以下内容? interface Data { a: number; b: { c: number; d: number; } } type OmitDeep = ... type WithoutC = OmitDeep 其中WithoutC将被推断为: interface WithoutC { a: number; b: { d: number } } 解决方案 您可以使用此类型将虚线路径映射到数组路径: type UnDot = T extends `${infer A}.${infer B}` ? [A, B] : '' type ProperyArray = UnDot; // ["a", "b"] 然后使用此答案删除嵌套属性: 用于在特定嵌套路
10 2023-11-01
编程技术问答社区
模板字面包含用作接口键的键
给定一个简单的接口: interface Schedule { interval: "month" | "day"; price: number; } i可以构造模板字体类型(使用ts4.4): type PrefixedScheduleKey = `schedule__${keyof Schedule}`; // "schedule__interval" | "schedule__price" 假设有一些此类接口,我想合并(基本上是变平)它们的前缀,模板字符标准键,以最终得到: interface Metadata { foo: string; bar: string; // computed schedule__interval: "month" | "day"; schedule__price: number; ... } 我应该如何声明此类接口键? interface Metadata { [key: Pr
22 2023-11-01
编程技术问答社区
在Typescript中为逗号分隔的字符串提供真正递归的模板字面意义
我试图为包含逗号分隔值的字符串定义一个打字稿模板.我可以使这个定义真正递归吗? See this typescript playground试验案例. 每个逗号分隔值表示height asc的排序顺序.该字符串应定义一个订单(包括主要,次级,第三级等),该顺序可能会根据有效的字段名称和两个可能的订单"asc"和"desc"的结合而无限期包含多个排序级别示例代码中的示例. 下面的实现最多处理4个排序订单,但情况5揭示了它并不是真正的递归.当前扩展(2x2)的ARITY仅包含多达4个可能的值,因此运气时发生了我尝试的初始情况. const FIELD_NAMES = [ "height", "width", "depth", "time", "amaze", ] as const; const SORT_ORDERS = [ "asc", "desc", ] as const; type Field = typeof FIELD_NAM
6 2023-10-31
编程技术问答社区
在打字稿模板文字中标记任意字符串的一种方法
我试图做与许多其他开发人员一起尝试完全相同以来的尝试,因为Typescript 4.1已发布:严格地键入所有具有预定模式的字符串. 尽管我设法找到了约会字符串的妥协,但我现在面临着十六进制颜色代码的挑战. 显然,尝试十六进制的幼稚方式= 0 | 1 | ... | " E" | " F",然后宣布 type HEX_CODE = `#${HEX}${HEX}${HEX}${HEX}${HEX}${HEX}`; 使这种类型过于多种类型的结合. 足够公平. 所以我想我会尝试至少在十六进制代码前添加#的要求,这意味着我会选择以下内容: type HEX_CODE = `#${arbitraryString}`; 但是,我无法找到一种使它起作用的方法.有人知道如何使这项工作,还是在类型上进行另一个(也许更好)妥协? 解决方案 ,这不仅是: type HEX_CODE = `#${string}`; typescript Playgro
22 2023-10-31
编程技术问答社区