String.Format 在 TypeScript 中不起作用

2023-12-14

String.Format不适用于TypeScript.
Error:

The property 'format' does not exist on value of type 
 '{ prototype: String; fromCharCode(...codes: number[]): string; 
 (value?: any): string; new(value?: any): String; }'.

attributes["Title"] = String.format(
    Settings.labelKeyValuePhraseCollection["[WAIT DAYS]"],
    originalAttributes.Days
);

字符串插值

注意:从 TypeScript 1.4 开始,TypeScript 中可以使用字符串插值:

var a = "Hello";
var b = "World";

var text = `${a} ${b}`

这将编译为:

var a = "Hello";
var b = "World";
var text = a + " " + b;

字符串格式

JavaScriptString对象没有format功能。 TypeScript 不会添加到本机对象,因此它也没有String.format功能。

对于 TypeScript,您需要扩展 String 接口,然后需要提供一个执行:

interface String {
    format(...replacements: string[]): string;
}

if (!String.prototype.format) {
  String.prototype.format = function() {
    var args = arguments;
    return this.replace(/{(\d+)}/g, function(match, number) { 
      return typeof args[number] != 'undefined'
        ? args[number]
        : match
      ;
    });
  };
}

然后您可以使用该功能:

var myStr = 'This is an {0} for {0} purposes: {1}';

alert(myStr.format('example', 'end'));

You could还考虑字符串插值(模板字符串的一项功能),这是 ECMAScript 6 的一项功能 - 尽管将其用于String.format在用例中,您仍然需要将其包装在函数中,以便提供包含格式和位置参数的原始字符串。它更通常与正在插值的变量内联使用,因此您需要使用参数进行映射以使其适用于此用例。

例如,格式字符串通常定义为稍后使用......这是行不通的:

// Works
var myFormatString = 'This is an {0} for {0} purposes: {1}';

// Compiler warnings (a and b not yet defines)
var myTemplateString = `This is an ${a} for ${a} purposes: ${b}`;

因此,要使用字符串插值,而不是格式字符串,您需要使用:

function myTemplate(a: string, b: string) {
    var myTemplateString = `This is an ${a} for ${a} purposes: ${b}`;
}

alert(myTemplate('example', 'end'));

格式字符串的另一个常见用例是它们用作共享资源。我还没有发现一种从数据源加载模板字符串而不使用的方法eval.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

String.Format 在 TypeScript 中不起作用 的相关文章

随机推荐

  • 将 Base64 编码的图像上传到 Node.js 服务器不起作用

    我正在使用 MEAN io 并且正在尝试上传 Base64 编码的图像 客户端 AngularJS Image we re going to send it out var base64Image files i var file imag
  • 在应用程序商店中转让 iPhone 应用程序的所有权

    我和我的团队有一个应用程序 我们很快就会将其提交到商店 但我们知道我们将在不久的将来将该应用程序出售给另一家公司 有人有将应用程序的所有权转移到另一个帐户的经验吗 具体来说 当我将应用程序出售给另一家公司时 我们如何将应用程序移至他们的帐户
  • 使用交替和分组结构

    最初我想要一个正则表达式来解析月份数字 首先我想出了以下正则表达式 1 9 1 1 012 它匹配任何正数 表示它匹配该数字的高位数字 即 1 gt 1 2 gt 2 9 gt 9 10 gt 1 19 gt 1 20 gt 2 为什么会这
  • 如何在代码中复制 android:editable="false" ?

    在布局中您可以设置EditText小部件不可通过android editable attribute 我怎样才能在代码中做到这一点 我需要做EditText小部件可根据条件进行编辑 editText setFocusable false e
  • 使用 DomDocument 将实体添加到 DOCTYPE

    我正在尝试创建一个类似于这样的 XML 文档
  • 禁用按钮时更改按钮的样式 ( IsEnabled=False )

    我有一个 UWP 问题 当按钮禁用时 IsEnabled False 如何更改按钮的样式 Microsoft added the VisualStateManager known from Silverlight to the Window
  • FastAPI - 如何在中间件中获取响应正文

    有没有办法在中间件中获取响应内容 以下代码是从here app middleware http async def add process time header request Request call next start time t
  • 引导程序弹出窗口内的日期选择器[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我在弹出框内放置了一个日期选择器 日期选择器不工作 有没有人这样做过 div class col sm 4 div
  • 如何通过正则表达式删除包含特定短语的文本块

    我有一些文本 如下所示 12 12 obj lt lt Some content here gt gt endobj 12 13 obj lt lt Some content here with a email address that c
  • 如何改变VBA中形状文本的样式?

    我用以下代码行更改了文本的大小 shp CellsSRC visSectionCharacter 0 visCharacterSize FormulaU 3pt 我想使用相同的代码模式更改形状文本的样式 粗体 和颜色 我没有找到确切的 公式
  • Visual Studio 2015 TFS .tfignore 文件

    我想忽略 Visual Studio 2015 解决方案中的文件夹 及其内容 签入 tfs 我在项目的根目录中创建了一个名为 tfignore 的文件 其中包含我要排除的文件夹 该文件的内容如下所示 Dist 这根本不起作用 即使我添加 c
  • 主函数内部静态分配大量内存

    我有一个程序必须在 C 中声明一个大小为 1000000 的巨大整数数组 使用 GNU GCC 编译器 我尝试用两种不同的方式声明数组 两个可能的代码是 include
  • 如果要同步读,是否还需要同步写?

    我对同步块没有什么疑问 在提出问题之前 我想分享另一篇相关帖子的答案相关问题答案的链接 我引用彼得 劳瑞来自同一个答案 synchronized ensures you have a consistent view of the data
  • PHP 逐行读取时可以排除换行符吗?

    我想逐行阅读 但我不想处理换行符 我希望将其删除 这样我最终只得到该行的内容 所以现在我的功能是 function getProductCount path count 0 foreach file path as name if name
  • 在哪里可以找到elasticache redis集群的TLS证书

    作为 Elasticache 的新手 我正在尝试从在不同 VPC 中运行的实例连接到它 当客户端位于基于 TLS 的 VPC 内时 它工作得很好 因为不需要传递 TLS 证书 我们只需要向 redis cli 传递 tls 选项 同样 当我
  • NSDate dateFromString 已弃用?

    我正在尝试使用 NSDate dateFromString 方法 但收到警告并且它导致应用程序崩溃 代码如下 NSString pickerDate NSString stringWithFormat timeSelector date N
  • 构建搜索应用程序的最佳实践? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我很快将开始一个简单的数据存储和搜索项目 基本上 其中之一是 将我巨大的 Excel 电子表格放入数据库 为其构建一个 Web GUI 并使其可搜索 类型的东西 困扰我的一件事是当用户输入
  • 如何从街道地址获取坐标

    我正在开发 Windows Phone 8 应用程序 但我找不到如何从地址获取坐标 问题是 我有我的坐标 我需要计算我和某个地址之间的距离 Windows Phone 8 没有太多记录 所以请帮助我 您正在寻找的称为 地理编码 将地址转换为
  • Grails:在运行时更改 dataSource url 以实现多租户数据库分离

    我正在使用 Grails 构建一个多租户应用程序 并且我想保留单独的数据库 我需要在运行时动态更改 url 以将 GORM 指向不同的数据库 我有一个前端充当平衡器 将请求分发到后端主机集群 每个后端主机运行一个 Grails 2 3 5
  • String.Format 在 TypeScript 中不起作用

    String Format不适用于TypeScript Error The property format does not exist on value of type prototype String fromCharCode code