一切福田,不離方寸,從心而覓,感無不通。

TypeScript String

String 对象用于处理文本(字符串)。

在 TypeScript 中,字符串可以通过 String 对象来创建,即使用 new String(…) 的方式。

不过,通常不建议使用 String 对象,而是直接使用字符串字面量,因为 String 对象会带来一些性能和类型上的问题。

语法

或者更简单方式:

String 对象与字符串字面量的区别

String 对象和字符串字面量在类型上是不同的:

  • 字符串字面量是基本数据类型 string,用于直接存储字符串值。
  • String 对象是 String 类型,实际上是一个对象,而非原始的字符串值。

字符串字面量和 String 对象的类型兼容性

在 TypeScript 中,string 字面量类型和 String 对象类型不完全兼容。

例如,string 类型的变量无法直接使用 String 对象的方法,反之亦然。因此,通常情况下不需要使用 String 对象。

strLiteral 是原始字符串类型(string),而 strObject 是 String 对象类型(String)。这意味着它们的类型不同。

以上代码转为 JavaScript 代码为:

String 对象属性

下表列出了 String 对象支持的属性:

序号 属性 & 描述 实例
1. constructor对创建该对象的函数的引用。
输出结果:
2. length返回字符串的长度。
3. prototype允许您向对象添加属性和方法。

String 方法

下表列出了 String 对象支持的方法:

序号 方法 & 描述 实例
1. charAt()返回在指定位置的字符。
2. charCodeAt()返回在指定的位置的字符的 Unicode 编码。
3. concat()连接两个或更多字符串,并返回新的字符串。
4. indexOf()返回某个指定的字符串值在字符串中首次出现的位置。
5. lastIndexOf()从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。
6. localeCompare()用本地特定的顺序来比较两个字符串。
7. match()

查找找到一个或多个正则表达式的匹配。

8. replace()替换与正则表达式匹配的子串

9. search()检索与正则表达式相匹配的值

10. slice()提取字符串的片断,并在新的字符串中返回被提取的部分。
11. split()把字符串分割为子字符串数组。

12. substr()从起始索引号提取字符串中指定数目的字符。
13. substring()提取字符串中两个指定的索引号之间的字符。

14. toLocaleLowerCase()根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射。

15. toLocaleUpperCase()据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射。

16. toLowerCase()把字符串转换为小写。

17. toString()返回字符串。

18. toUpperCase()把字符串转换为大写。

19. valueOf()返回指定字符串对象的原始值。

String 对象的使用建议

在 TypeScript 中,使用 String 对象通常是不必要的,直接使用 string 字面量会更高效且符合 TypeScript 的最佳实践:

  • 性能String 对象是一个引用类型,会占用更多内存,且每次创建一个新对象性能开销更大。
  • 类型安全:TypeScript 更鼓励使用 string 字面量类型,保持代码的简洁和一致性。

如果确实需要使用 String 对象的方法,可以通过 valueOf() 方法将对象转为原始字符串,然后继续处理。

通常情况下,TypeScript 推荐直接使用 string 字面量类型,以简化代码,提高性能,避免不必要的类型转换和复杂性。

 

from: https://www.runoob.com/typescript/ts-string.html