注意: 如果您是 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,依此类推。

字符串的特性
与 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
在这里,value1
和 value2
被视为不同,因为就大小写而言,'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!");
另请阅读