基本类型和变量声明
在 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: 声明和使用基本类型
- 声明一个
number类型的变量age,并赋值为25。 - 声明一个
string类型的变量name,并赋值为"Alice"。 - 声明一个
boolean类型的变量isStudent,并赋值为true。 - 声明一个
array类型的变量numbers,并赋值为[1, 2, 3, 4, 5]。 - 声明一个
tuple类型的变量person,并赋值为["Alice", 25]。 - 声明一个
enum类型的变量Color,并赋值为Color.Blue。 - 声明一个
any类型的变量dynamicValue,并赋值为42,然后将其重新赋值为"Hello"。 - 声明一个
unknown类型的变量unknownValue,并赋值为42,然后检查其类型并计算平方。 - 声明一个
void类型的函数logMessage,并打印一条消息。 - 声明一个
null类型的变量nullValue,并赋值为null。 - 声明一个
undefined类型的变量undefinedValue,并赋值为undefined。 - 声明一个
never类型的函数throwError,并抛出一个错误。
练习 2: 使用 let 和 const 声明变量
- 使用
let声明一个number类型的变量count,并赋值为10,然后将其重新赋值为20。 - 使用
const声明一个number类型的常量pi,并赋值为3.14159,尝试重新赋值并观察错误。
练习 3: 类型推断
- 声明一个变量
inferredNumber,并赋值为42,观察 TypeScript 推断的类型。 - 声明一个变量
inferredString,并赋值为"Hello",观察 TypeScript 推断的类型。
4. 总结
通过本教程,你已经了解了 TypeScript 中的基本类型和变量声明。这些知识是进一步学习 TypeScript 的基础。在接下来的课程中,我们将深入探讨 TypeScript 的更多高级特性,如函数、接口、类等。希望你能通过实践练习巩固所学知识,并在实际项目中灵活运用。