TypeScript 字符串

注意: 如果您是 TypeScript 新手,请先查看我们的 TypeScript 入门 教程。


TypeScript 字符串是一种原始数据类型,用于表示文本数据。

这是一个简单的 TypeScript 字符串示例。您可以在其余教程中阅读更多内容。

示例

let message: string = "Good Morning!";
console.log(message);

// Output: Good Morning!

在这里,message 是一个 string 类型的变量,并用值 "Good Morning!" 初始化。


声明 TypeScript 字符串

在 TypeScript 中声明字符串的语法是:

let variableName: string;

例如,

let greetings: string;

您可以使用单引号、双引号或反引号为 greetings 赋值

  • 单引号: greetings = 'Hello';
  • 双引号: greetings = "Hello";
  • 反引号: greetings = `Hello`;

单引号和双引号在 TypeScript 中是相同的

在 TypeScript 中,单引号和双引号的功能相同,可以互换使用。

// String enclosed within single quotes
let language: string = 'English';
console.log(language);  // English

// String enclosed within double quotes
let country: string = "USA";
console.log(country);  // USA

常见问题

避免不匹配的引号

在 TypeScript 中编写字符串时,必须确保如果使用单引号 (') 开始一个字符串,则也必须使用单引号结束它,反之亦然。

以下代码将引发语法错误

let greeting: string = 'Hello, world!";

反引号允许插入变量和表达式

与单引号和双引号不同,反引号允许直接在字符串中插入变量或表达式。

// String enclosed within backticks
let userName: string = "Jack";
console.log(`Hello, ${userName}`);

在此示例中,我们使用反引号创建了一个直接包含变量 userName 的字符串。

输出

Hello, Jack

访问字符串字符

您可以使用方括号表示法 [] 访问字符串中的单个字符。方法如下:

let greeting: string = "Hello";

// Access the first character, 'H'
let firstCharacter = greeting[0];
console.log(firstCharacter);

// Access the second character, 'e'
let secondCharacter = greeting[1];
console.log(secondCharacter);

输出

H
e

字符串中的每个字符都可以通过其索引进行访问,第一个字符的索引从 0 开始,第二个字符的索引为 1,依此类推。

TypeScript String Indexes Start From 0
TypeScript 字符串索引从 0 开始

字符串的特性

与 JavaScript 字符串一样,TypeScript 字符串具有几个对编程很重要的显著特性。

1. 字符串是不可变的

TypeScript 字符串是不可变的。这意味着一旦创建了字符串,其中的字符就不能被更改。例如,

let message: string = "hello";
message[0] = "H";
console.log(message); 

// Output: Index signature in type 'String' only permits reading.

在上面的示例中,我们尝试使用 message[0] = "H"; 来更改 message 的第一个字符。但是,由于其不可变性,此操作不会更改字符串。

虽然您不能修改字符串的现有字符,但您可以随时为字符串变量本身分配一个新值。例如,

let message: string = "hello";
message = "Hello";
console.log(message);  // Outputs: Hello

2. 区分大小写

TypeScript 字符串是区分大小写的,这意味着小写字母和大写字母被视为不同。例如,

let value1: string = "a";
let value2: string = "A";

// Check if value1 and value2 are strictly equal
console.log(value1 === value2);  // Output: false

在这里,value1value2 被视为不同,因为就大小写而言,'a''A' 是不同的。


字符串方法

有一些字符串方法可用于对字符串执行操作。它们是:

方法 描述
charAt() 返回指定索引处的字符。
concat() 连接两个或多个字符串。
replace() 用另一个字符串替换字符串。
split() 将字符串转换为字符串数组。
substr() 通过获取子字符串的起始位置和长度来返回字符串的一部分。
substring() 从指定的起始索引(包含)到结束索引(不包含)返回字符串的一部分。
slice() 从指定的起始索引(包含)到结束索引(不包含)返回字符串的一部分。
toLowerCase() 返回传入的字符串的小写形式。
toUpperCase() 返回传入的字符串的大写形式。
trim() 删除字符串中的空格。
includes() 搜索一个字符串并返回一个布尔值。
search() 搜索一个字符串并返回匹配项的位置。

示例:字符串方法

// Initial string declaration
let baseString: string = "    Hello World!";

// Using trim() to ensure there are no leading or trailing whitespaces
let trimmedString: string = baseString.trim();

// Using toUpperCase() to convert the entire string to uppercase
let upperCaseString: string = trimmedString.toUpperCase();

// Using replace() to replace "WORLD" with "TS"
let replacedString: string = upperCaseString.replace("WORLD", "TS");

// Using slice() to extract a part of the string
let sliceOfString: string = replacedString.slice(0, 5); // Extracts 'HELLO'

// Using charAt() to find the first character of the trimmed string
let firstChar: string = trimmedString.charAt(0); // 'H'

console.log(`Original string: ${baseString}`);
console.log(`Trimmed: ${trimmedString}`);
console.log(`Uppercase: ${upperCaseString}`);
console.log(`Replaced "WORLD" with "TS": ${replacedString}`);
console.log(`Slice of the first part: ${sliceOfString}`);
console.log(`First character: ${firstChar}`);

输出

Original string:     Hello World!
Trimmed: Hello World!
Uppercase: HELLO WORLD!
Replaced "WORLD" with "TS": HELLO TS!
Slice of the first part: HELLO
First character: H

注意: 由于 TypeScript 中的字符串是不可变的,因此这些方法不会修改原始字符串;相反,它们会返回一个新的字符串。


常见问题

如何获取字符串的长度?

您可以使用字符串变量上的 length 属性来获取字符串的长度。例如,

let message: string = "Hello, TypeScript!";
let messageLength: number = message.length;
console.log(messageLength); // Output: 18
字符串原始值和字符串对象

在 TypeScript 中,字符串既可以被视为原始值,也可以被视为对象。

字符串原始值: 字符串原始值是最常用的字符串形式。例如,

let greeting: string = "Hello, world!";

字符串对象: TypeScript 还允许使用 String() 构造函数将字符串定义为对象。例如,

let objectString: String = new String("Hello, world!");

另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战