我已经读到了TypeScrip中的字符串基元类型没有方法.这只是一种价值. 如果我们需要方法(例如toLowerCase()),我们需要使用字符串类型.

以下是我try 过的:

let s = "Hello";
console.log(typeof(s));   // string
s = s.toLowerCase();

我不明白:我已经创建了一个字符串变量,并且能够对其调用toLowerCase方法……你能给我解释一下为什么这是可能的吗?

字符串的增值功能又是什么?

谢谢

推荐答案

在类型脚本和JavaScript中,由于一个称为"自动装箱"的过程,您可以调用字符串原语(如"Hello".toLowerCase())上的方法.这意味着当您调用字符串基元上的方法时,语言会将其临时转换为字符串对象以访问该方法,然后在执行该方法后返回为字符串基元.这允许您在不显式使用字符串对象的情况下使用方法.

字符串基元和字符串对象之间的主要区别在于,基元是简单的文本值,而字符串对象更复杂,在实践中很少需要.大多数情况下,您将使用字符串原语,因为它们简单高效,这要归功于自动装箱,它使方法使用变得透明.

Typescript相关问答推荐

Angular 17 -如何在for循环内创建一些加载?

了解TS类型参数列表中的分配

在这种情况下,如何获得类型安全函数的返回值?

使用带有RxJS主题的服务在Angular中的组件之间传递数据

角形标题大小写所有单词除外

泛型和数组:为什么我最终使用了`泛型T []`而不是`泛型T []`?<><>

在配置对象上映射时,类型脚本不正确地推断函数参数

为什么从数组中删除一个值会删除打字错误?

学习Angular :无法读取未定义的属性(正在读取推送)

如何在TypeScrip中从字符串联合类型中省略%1值

使用2个泛型类型参数透明地处理函数中的联合类型

被推断为原始类型的交集的扩充类型的交集

React Typescript项目问题有Redux-Toolkit userSlice角色问题

TypeScrip:来自先前参数的参数中的计算(computed)属性名称

如何将定义模型(在Vue 3.4中)用于输入以外的其他用途

RXJS将对键盘/鼠标点击组合做出react

打字错误推断

使用或属性编写无限嵌套的接口

接口中可选嵌套属性的类型判断

使用强制转换编写打字函数的惯用方法