likes
comments
collection
share

TypeScript内置数据类型:从布尔到Never

作者站长头像
站长
· 阅读数 16

TypeScript内置数据类型:从布尔到Never

作为一门类型安全的编程语言,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 中,我们可以使用 nullundefined 关键字声明对应的变量。

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):truefalse
  • 数字类型(number):整数和浮点数
  • 字符串类型(string):文本数据
  • 数组类型(array):一组相同类型的数据集合
  • 元组类型(tuple):已知元素数量和类型的数组
  • 枚举类型(enum):具名的常量集合
  • 任意类型(any):任意类型的值
  • 空类型(void):没有返回值的函数
  • Null 和 Undefined 类型:空值和未定义的值
  • Never 类型:永远不会发生的类型

示例代码仅用于说明概念,可能不符合最佳实践。在实际开发中,请根据具体情况进行调整。