迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > TypeScript >

Typescript 中的字符串插值(注入)

作者:迹忆客 最近更新:2022/08/29 浏览次数:
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 一起使用。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 TypeScript 中返回一个 Promise

发布时间:2023/03/19 浏览次数:182 分类:TypeScript

本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便