什么是 TypeScript

TypeScript 是一种由微软开发的编程语言,它是 JavaScript 的严格超集,意味着任何合法的 JavaScript 代码都是合法的 TypeScript 代码。

官方定义

TypeScript = JavaScript + 静态类型系统 + 面向对象特性 + 编译时检查

发展历程

时间事件
2012年微软公开发布 TypeScript 0.8
2013年TypeScript 0.9 发布,支持泛型
2014年TypeScript 1.0 正式版发布
2015年支持 ES6 模块和装饰器
2018年TypeScript 3.0 发布
2020年TypeScript 4.0 发布
至今持续更新迭代

核心特性

静态类型

let name: string = "张三"
let age: number = 25
let isActive: boolean = true

name = 123 // 错误:不能将 number 赋值给 string

接口定义

interface User {
  id: number
  name: string
  email?: string
}

function getUser(user: User) {
  console.log(user.name)
}

类与继承

class Animal {
  constructor(public name: string) {}
  
  move(distance: number = 0) {
    console.log(`${this.name} 移动了 ${distance} 米`)
  }
}

class Dog extends Animal {
  bark() {
    console.log("汪汪!")
  }
}

泛型编程

function identity<T>(arg: T): T {
  return arg
}

let output = identity<string>("hello")

编译原理

TypeScript 代码不能直接运行,需要编译成 JavaScript:

.ts 文件 → TypeScript 编译器 → .js 文件

编译过程会:

  1. 类型检查
  2. 类型擦除
  3. 语法转换(可选)
  4. 生成 JavaScript 代码

与 JavaScript 的关系

TypeScript 不是一门全新的语言,而是 JavaScript 的增强:

  • 完全兼容 JavaScript 语法
  • 可以渐进式引入类型
  • 编译产物是标准 JavaScript
  • 可以使用所有 JavaScript 库