Typescript 中的字符串插值(注入)
const info = "My name is {0} and I live in {1}";
当我们可以从数组或对象中注入字符串时,看起来不是很好吗?在本文中,我将展示如何使用 TypeScript 实现字符串插值。
我长期为我的 javascript 项目使用 stringinject npm 包。 stringinject 提供的功能是我们可以用数组或对象替换对象文字。 我们可以在 javascript 中毫无问题地使用它。
在字符串中注入数组
const string = stringInject("This is a {0} string for {1}", ["test","stringInject"]);
在字符串中注入对象
const string = stringInject("My username in {username} on {platform}",{"username":"admin","platform":"迹忆客"});
如上所示,我们可以简单地安装并使用它来注入字符串。
那有什么问题呢?
当我们开始使用 Typescript 时,实际问题就开始了。 这个包没有 typescript 定义。 许多人建议使用字符串文字方法,这显然很好,但我想要的不止于此。花点时间做研究,解决方案如下
使用typescript注入字符串
export const stringInject = (str: string, data: any) => { if ((data instanceof Array)) { return str.replace(/({\d})/g, (i) => // @ts-ignore data[i.replace(/{/, "").replace(/}/, "")]); } else if ((data instanceof Object)) { if (Object.keys(data).length === 0) { return str; } // tslint:disable-next-line:forin for (const _index in data) { return str.replace(/({([^}]+)})/g, (i) => { const key = i.replace(/{/, "").replace(/}/, ""); if (!data[key]) { return i; } return data[key]; }); } } else if (!(data instanceof Array)) { return str; } else { return false; } }; const stringForArray = 'My name is {0} and platform {1}'; const stringForObject = 'My name is {username} and platform {platform}'; const arrayInfo = ['Admin','Medium']; const objectInfo = {username: 'Admin', platform: 'Medium'}; console.log(stringInject(stringForArray, arrayInfo)); console.log(stringInject(stringForObject, objectInfo));
现在我们成功地在 typescript 中构建了自己的 stringinject
方法。 我不是自己构建的,我去了 stringinject 包的 github 存储库并更改了该方法,以便它可以与 typescript 一起使用。
相关文章
在 TypeScript 中使用 try..catch..finally 处理异常
发布时间:2023/03/19 浏览次数:181 分类:TypeScript
-
本文详细介绍了如何在 TypeScript 中使用 try..catch..finally 进行异常处理,并附有示例。
在 TypeScript 中使用 declare 关键字
发布时间:2023/03/19 浏览次数:97 分类:TypeScript
-
本教程指南通过特定的实现和编码示例深入了解了 TypeScript 中 declare 关键字的用途。
在 TypeScript 中 get 和 set
发布时间:2023/03/19 浏览次数:172 分类:TypeScript
-
本篇文章演示了类的 get 和 set 属性以及如何在 TypeScript 中实现它。
在 TypeScript 中格式化日期和时间
发布时间:2023/03/19 浏览次数:161 分类:TypeScript
-
本教程介绍内置对象 Date() 并讨论在 Typescript 中获取、设置和格式化日期和时间的各种方法。
在 TypeScript 中返回一个 Promise
发布时间:2023/03/19 浏览次数:182 分类:TypeScript
-
本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。
在 TypeScript 中定义函数回调的类型
发布时间:2023/03/19 浏览次数:221 分类:TypeScript
-
本教程说明了在 TypeScript 中为函数回调定义类型的解决方案。为了程序员的方便和方便,实施了不同的编码实践指南。
在 TypeScript 中把 JSON 对象转换为一个类
发布时间:2023/03/19 浏览次数:110 分类:TypeScript
-
本教程演示了如何将 JSON 对象转换为 TypeScript 中的类。
使用 NPM 将 TypeScript 更新到最新版本
发布时间:2023/03/19 浏览次数:130 分类:TypeScript
-
本教程说明了如何使用 npm 更新到最新版本的 TypeScript。这将为如何使用 npm 将 TypeScript 更新到最新版本提供完整的实际示例。
使用 jQuery 和 TypeScript
发布时间:2023/03/19 浏览次数:151 分类:TypeScript
-
本教程提供了使用 jQuery 和 TypeScript 的基本理解和概念。