TypeScript 是一种由微软开发的开源编程语言,是 JavaScript 的超集。它为 JavaScript 添加了静态类型和其他功能,使得开发大型应用变得更加高效和安全。
1. 基本概念
-
超集:
- TypeScript 是 JavaScript 的超集,这意味着所有有效的 JavaScript 代码都是有效的 TypeScript 代码。你可以逐渐将现有的 JavaScript 项目转换为 TypeScript。
-
编译:
- TypeScript 代码需要编译成 JavaScript 才能在浏览器或 Node.js 中运行。TypeScript 编译器会将
.ts
文件转换为.js
文件。
- TypeScript 代码需要编译成 JavaScript 才能在浏览器或 Node.js 中运行。TypeScript 编译器会将
-
静态类型:
- TypeScript 的主要特性是静态类型,允许开发者在编写代码时定义变量的类型,从而在编译时捕获错误。
2. 类型系统
TypeScript 的类型系统非常灵活,主要包括以下几个方面:
a. 基本类型
-
数字(number):
let age: number = 30;
-
字符串(string):
let name: string = 'Alice';
-
布尔值(boolean):
let isActive: boolean = true;
b. 数组和元组
-
数组:
let numbers: number[] = [1, 2, 3];
-
元组:
let tuple: [string, number] = ['Alice', 25];
c. 枚举(Enum)
- 枚举用于定义一组命名的常量。
enum Color { Red, Green, Blue }
d. 对象类型
- 定义对象的类型结构。
interface Person { name: string; age: number; } let person: Person = { name: 'Alice', age: 25 };
e. 函数类型
- 可以定义函数的参数和返回值类型。
function add(x: number, y: number): number { return x + y; }
f. 联合类型
- 允许一个变量可以是多种类型之一。
let value: string | number; value = 'Hello'; // OK value = 123; // OK
g. 类型推断
- TypeScript 可以根据上下文推断变量的类型。
let count = 10; // Type inferred as number
3. 与 JavaScript 的关系
-
兼容性:
- TypeScript 兼容 JavaScript,任何有效的 JavaScript 代码都是有效的 TypeScript 代码。
-
增强功能:
- TypeScript 提供了类型检查和其他功能(如接口、类、命名空间等),使得代码更具可读性和可维护性。
-
工具支持:
- TypeScript 提供了更好的 IDE 支持,许多现代编辑器(如 Visual Studio Code)都能提供语法高亮、自动补全和类型检查等功能。
-
编译成 JavaScript:
- TypeScript 代码在运行之前必须被编译成 JavaScript,因此,它可以在所有支持 JavaScript 的环境中运行。