作为一门类型安全的编程语言,TypeScript 提供了多种内置数据类型,帮助我们更好地定义和操作数据。
1. 布尔类型(boolean)
首先,让我们来了解一下布尔类型。布尔类型代表了一个逻辑值,只有两个可能的取值:true
(真)和 false
(假)。在 TypeScript 中,我们可以使用 boolean
关键字来声明布尔类型的变量。
let isDone: boolean = false;
布尔类型在条件判断和逻辑运算中非常常见。例如,我们可以使用布尔类型来判断某个条件是否成立,并根据结果执行相应的操作。
let isLogged: boolean = true;
if (isLogged) {
console.log("用户已登录!");
} else {
console.log("用户未登录!");
}
2. 数字类型(number)
下一个类型是数字类型。数字类型用于表示数值,包括整数和浮点数。在 TypeScript 中,我们可以使用 number
关键字声明数字类型的变量。
let age: number = 27;
let pi: number = 3.14;
数字类型支持基本的数学运算,例如加法、减法、乘法和除法。
let x: number = 10;
let y: number = 5;
let sum: number = x + y;
let difference: number = x - y;
let product: number = x * y;
let quotient: number = x / y;
console.log(sum); // 输出:15
console.log(difference); // 输出:5
console.log(product); // 输出:50
console.log(quotient); // 输出:2
3. 字符串类型(string)
接下来,让我们来讨论字符串类型。字符串类型用于表示文本数据。在 TypeScript 中,我们可以使用 string
关键字声明字符串类型的变量。
let name: string = "张三";
let message: string = "欢迎来到我的个人网站!";
字符串类型支持字符串拼接、截取和长度获取等操作。
let greeting: string = "Hello,";
let name: string = "Alice";
let message: string = greeting + " " + name;
let substring: string = message.substring(7, 12);
let length: number = message.length;
console.log(message); // 输出:Hello, Alice
console.log(substring); // 输出:Alice
console.log(length); // 输出:13
4. 数组类型(array)
数组类型用于表示一组相同类型的数据集合。在 TypeScript 中,我们可以使用 type[]
或者 Array<type>
来声明数组类型的变量,其中 type
是数组中元素的类型。
let numbers: number
[] = [1, 2, 3, 4, 5];
let fruits: Array<string> = ["apple", "banana", "orange"];
数组类型支持访问元素、添加元素和获取数组长度等操作。
let numbers: number[] = [1, 2, 3, 4, 5];
console.log(numbers[0]); // 输出:1
numbers.push(6);
console.log(numbers); // 输出:[1, 2, 3, 4, 5, 6]
let length: number = numbers.length;
console.log(length); // 输出:6
5. 元组类型(tuple)
元组类型用于表示一个已知元素数量和类型的数组。在 TypeScript 中,我们可以使用 type[]
和元素类型的列表来声明元组类型的变量。
let person: [string, number] = ["张三", 27];
元组类型可以访问特定索引位置的元素,并且保留了元素的类型信息。
let person: [string, number] = ["张三", 27];
console.log(person[0]); // 输出:"张三"
console.log(person[1]); // 输出:27
6. 枚举类型(enum)
枚举类型用于表示一组具名的常量。在 TypeScript 中,我们可以使用 enum
关键字声明枚举类型。
enum Color {
Red,
Green,
Blue,
}
let backgroundColor: Color = Color.Red;
枚举类型提供了一组有意义的命名常量,方便我们在代码中使用。
enum Day {
Monday = 1,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday,
}
let today: Day = Day.Wednesday;
console.log(today); // 输出:3
7. 任意类型(any)
任意类型可以用来表示任意类型的值。在 TypeScript 中,我们可以使用 any
关键字声明任意类型的变量。
let value: any = "Hello, World!";
value = 42;
value = true;
任意类型可以灵活地适应不同类型的值,但同时也丧失了类型安全性。
let value: any = "Hello, World!";
value.substring(7); // 有效,返回:"World!"
value = 42;
value.substring(7); // 报错!编译时不会检查类型
8. 空类型(void)
空类型用于表示没有任何返回值的函数。在 TypeScript 中,我们可以使用 void
关键字声明空类型。
function greet(): void {
console.log("Hello!");
}
空类型主要用于定义不需要返回值的函数。
function sayHello(name: string): void {
console.log("Hello, " + name + "!");
}
9. Null 和 Undefined 类型
Null 和 Undefined 类型分别表示空值和未定义的值。在 TypeScript 中,我们可以使用 null
和 undefined
关键字声明对应的变量。
let empty: null = null;
let notDefined: undefined = undefined;
Null 和 Undefined 类型在某些情况下可以作为其他类型的子类型使用。
let name: string = null;
let age: number = undefined;
10. Never 类型
Never 类型表示永远不会发生的类型。在 TypeScript 中,Never 类型通常用于描述抛出异常或无法执行到终点的函数。
function throwError(message: string): never {
throw new Error(message);
}
function infiniteLoop(): never {
while (true) {
// 无限循环
}
}
Never 类型是其他类型的子类型,但是没有类型是 Never 类型的子类型。
let value: never = throwError("Something went wrong.");
总结
以上就是 TypeScript 的一些常用的内置数据类型。通过使用这些数据类型,我们可以更好地定义和操作数据,提高代码的可读性和可维护性。
- 布尔类型(boolean):
true
或false
- 数字类型(number):整数和浮点数
- 字符串类型(string):文本数据
- 数组类型(array):一组相同类型的数据集合
- 元组类型(tuple):已知元素数量和类型的数组
- 枚举类型(enum):具名的常量集合
- 任意类型(any):任意类型的值
- 空类型(void):没有返回值的函数
- Null 和 Undefined 类型:空值和未定义的值
- Never 类型:永远不会发生的类型
示例代码仅用于说明概念,可能不符合最佳实践。在实际开发中,请根据具体情况进行调整。