Skip to content
On this page

TypeScript 基础概念

TypeScript 是 JavaScript 的超集,添加了可选的静态类型。它编译为纯 JavaScript,可以在任何浏览器、服务器或系统上运行。

什么是 TypeScript

TypeScript 是由 Microsoft 开发的开源编程语言,旨在解决 JavaScript 在大型项目中的局限性。它提供了一种更安全、更可维护的开发方式。

核心特性

  • 静态类型检查:在编译时检测类型错误
  • 类型推断:自动推断变量类型
  • 面向对象编程:支持类、接口、继承等
  • 函数式编程:支持高阶函数、泛型等
  • 现代 JavaScript 特性:支持 ES6+ 特性

为什么使用 TypeScript

  • 提高代码质量和可维护性
  • 更好的 IDE 支持和自动补全
  • 更早发现错误(编译时而非运行时)
  • 更好的代码文档化
  • 适合大型项目开发

安装与设置

bash
# 全局安装 TypeScript
npm install -g typescript

# 或者在项目中安装
npm install --save-dev typescript

# 初始化 TypeScript 配置
npx tsc --init

基本类型

TypeScript 提供了 JavaScript 的所有基本类型,并添加了一些扩展:

typescript
// 布尔值
let isDone: boolean = false;

// 数字
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;

// 字符串
let color: string = "blue";

// 数组
let list: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3];

// 元组
let x: [string, number] = ["hello", 10];

// 枚举
enum Color {Red, Green, Blue}
let c: Color = Color.Green;

// 任意类型
let notSure: any = 4;
notSure = "maybe a string";

// 空值
let unusable: void = undefined;

// Null 和 Undefined
let u: undefined = undefined;
let n: null = null;

// Never
function error(message: string): never {
    throw new Error(message);
}

// 对象
declare function create(o: object | null): void;
create({ prop: 0 });

变量声明

TypeScript 支持 ES6+ 的变量声明方式:

typescript
// 使用 let 和 const
let someValue: string = "hello";
const maxValue: number = 100;

// 解构
let input = [1, 2];
let [first, second] = input;

// 展开运算符
let defaults = { food: "spicy", price: "$10" };
let search = { ...defaults, food: "rich" };

函数

TypeScript 中的函数可以指定参数和返回值类型:

typescript
// 函数声明
function add(x: number, y: number): number {
    return x + y;
}

// 函数表达式
let myAdd: (x: number, y: number) => number = 
    function(x: number, y: number): number { return x + y; };

// 可选参数和默认参数
function buildName(firstName: string, lastName?: string) {
    if (lastName) {
        return firstName + " " + lastName;
    } else {
        return firstName;
    }
}

// 剩余参数
function multiply(factor: number, ...values: number[]) {
    return values.map(x => x * factor);
}

小结

TypeScript 通过添加类型系统,为 JavaScript 提供了更好的开发体验。掌握这些基础概念是进一步学习 TypeScript 的关键。