基本类型和变量声明

在 TypeScript 中,类型系统是其核心特性之一。了解基本类型和如何声明变量是掌握 TypeScript 的第一步。本教程将详细介绍 TypeScript 中的基本类型和变量声明,并通过代码示例和实践练习帮助你更好地理解这些概念。

1. 基本类型

TypeScript 支持多种基本类型,包括 number, string, boolean, array, tuple, enum, any, unknown, void, null, undefined, 和 never。下面我们将逐一介绍这些类型。

1.1 number 类型

number 类型用于表示数字,包括整数和浮点数。

let age: number = 25;
let price: number = 19.99;

1.2 string 类型

string 类型用于表示文本数据。

let name: string = "Alice";
let greeting: string = `Hello, ${name}!`;

1.3 boolean 类型

boolean 类型用于表示布尔值,即 true 或 false。

let isStudent: boolean = true;
let hasCar: boolean = false;

1.4 array 类型

array 类型用于表示一组相同类型的元素。

let numbers: number[] = [1, 2, 3, 4, 5];
let fruits: string[] = ["apple", "banana", "cherry"];

1.5 tuple 类型

tuple 类型用于表示一个固定长度的数组,其中每个元素的类型可以不同。

let person: [string, number] = ["Alice", 25];

1.6 enum 类型

enum 类型用于定义一组命名的常量。

enum Color {
    Red,
    Green,
    Blue
}
let favoriteColor: Color = Color.Blue;

1.7 any 类型

any 类型允许变量存储任何类型的值,通常用于与 JavaScript 代码的兼容。

let dynamicValue: any = 42;
dynamicValue = "Hello";
dynamicValue = true;

1.8 unknown 类型

unknown 类型类似于 any,但更安全,因为它要求在使用前进行类型检查。

let unknownValue: unknown = 42;
if (typeof unknownValue === "number") {
    let squared: number = unknownValue * unknownValue;
}

1.9 void 类型

void 类型通常用于表示函数没有返回值。

function logMessage(message: string): void {
    console.log(message);
}

1.10 null 和 undefined 类型

null 和 undefined 类型分别表示空值和未定义的值。

let nullValue: null = null;
let undefinedValue: undefined = undefined;

1.11 never 类型

never 类型表示永远不会发生的值,通常用于表示永远不会返回的函数。

function throwError(message: string): never {
    throw new Error(message);
}

2. 变量声明

在 TypeScript 中,变量可以通过 let 或 const 关键字声明,并且可以显式指定类型。

2.1 let 声明

let 用于声明可重新赋值的变量。

let count: number = 10;
count = 20; // 合法

2.2 const 声明

const 用于声明不可重新赋值的常量。

const pi: number = 3.14159;
pi = 3.14; // 非法,会报错

2.3 类型推断

TypeScript 支持类型推断,即编译器可以根据初始值自动推断变量的类型。

let inferredNumber = 42; // 推断为 number 类型
let inferredString = "Hello"; // 推断为 string 类型

3. 实践练习

练习 1: 声明和使用基本类型

  1. 声明一个 number 类型的变量 age,并赋值为 25。
  2. 声明一个 string 类型的变量 name,并赋值为 "Alice"。
  3. 声明一个 boolean 类型的变量 isStudent,并赋值为 true。
  4. 声明一个 array 类型的变量 numbers,并赋值为 [1, 2, 3, 4, 5]。
  5. 声明一个 tuple 类型的变量 person,并赋值为 ["Alice", 25]。
  6. 声明一个 enum 类型的变量 Color,并赋值为 Color.Blue。
  7. 声明一个 any 类型的变量 dynamicValue,并赋值为 42,然后将其重新赋值为 "Hello"。
  8. 声明一个 unknown 类型的变量 unknownValue,并赋值为 42,然后检查其类型并计算平方。
  9. 声明一个 void 类型的函数 logMessage,并打印一条消息。
  10. 声明一个 null 类型的变量 nullValue,并赋值为 null。
  11. 声明一个 undefined 类型的变量 undefinedValue,并赋值为 undefined。
  12. 声明一个 never 类型的函数 throwError,并抛出一个错误。

练习 2: 使用 let 和 const 声明变量

  1. 使用 let 声明一个 number 类型的变量 count,并赋值为 10,然后将其重新赋值为 20。
  2. 使用 const 声明一个 number 类型的常量 pi,并赋值为 3.14159,尝试重新赋值并观察错误。

练习 3: 类型推断

  1. 声明一个变量 inferredNumber,并赋值为 42,观察 TypeScript 推断的类型。
  2. 声明一个变量 inferredString,并赋值为 "Hello",观察 TypeScript 推断的类型。

4. 总结

通过本教程,你已经了解了 TypeScript 中的基本类型和变量声明。这些知识是进一步学习 TypeScript 的基础。在接下来的课程中,我们将深入探讨 TypeScript 的更多高级特性,如函数、接口、类等。希望你能通过实践练习巩固所学知识,并在实际项目中灵活运用。