web:ts的字符串string和String
简介
string和String简介。
string是TypeScript的原始类型标注,与number/boolean同级
String是JavaScript运行时内置对象的构造函数类型,在类型标注领域string更常用也更安全,而String几乎只用在需要描述包装对象实例的场景(虽然这种场景极少)。
string(小写)- 原始类型
本质:TypeScript 的基本类型(Primitive Type),对应 JavaScript 的原始字符串值。
用法:声明变量、函数参数或返回值为原始字符串类型。
let name: string = "Alice"; // ✅ 推荐用法function greet(msg: string): string {return msg;
}- 特点:
- 直接存储字符串值(如
"hello")。 - 不能使用
new实例化(new string会报错)。
String(大写)-包装对象类型
本质:JavaScript 的内置
String对象的类型声明(构造函数)。在 TypeScript 中属于接口类型,描述字符串包装对象的属性和方法。用法:
极少需要显式使用
String作为类型注解,但可以调用其静态方法(如String.fromCharCode())。错误示例(避免这样用)
let objStr: String = new String("Bob"); // ❌ 不推荐:创建了冗余的包装对象特点:
描述字符串包装对象实例(通过
new String()创建)。包含
charAt()、substring()等方法的类型定义(原始string也可调用这些方法,因为 JS 会自动装箱)。
总结
|
| |
|---|---|---|
类型 | 原始类型 (Primitive) | 包装对象接口 (Interface) |
来源 | TS 基础类型 | JS 内置对象的类型声明 |
用法 | 声明原始字符串变量、返回值 | 描述 |
实例化 |
|
|
注意事项
不要混淆赋值
// ✅ 正确
let s1: string = "text";// ✅ 语法正确(TS 允许),但不推荐(隐式装箱)
let s2: String = "text";// ❌ 错误:类型不匹配
let s3: string = new String("text");最佳实践
始终使用
string:99% 的场景应声明原始字符串类型(变量、函数参数/返回值)。避免
new String():创建包装对象会浪费内存,且容易引发比较错误。理解自动装箱:原始类型调用方法时(如
"text".length),JS 引擎会自动转为String对象,无需手动操作。
