跳转到内容

TypeScript

来自代码酷

模板:编程语言信息框

TypeScript是由微软开发的开源编程语言,它是JavaScript的一个超集,添加了可选的静态类型系统和基于类的面向对象编程。TypeScript通过转译器转换为JavaScript代码,可以在任何支持JavaScript的环境中运行。

历史[编辑 | 编辑源代码]

TypeScript由微软的Anders Hejlsberg(同时也是C#的首席架构师)领导开发,于2012年10月首次发布。其主要目标是解决JavaScript在大规模应用开发中的可维护性问题。

特性[编辑 | 编辑源代码]

类型系统[编辑 | 编辑源代码]

TypeScript的核心特性是其静态类型系统,这有助于在开发阶段捕获错误,提高代码质量和开发效率。

// 基本类型注解
let isDone: boolean = false;
let decimal: number = 6;
let color: string = "blue";

// 数组
let list: number[] = [1, 2, 3];

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

接口[编辑 | 编辑源代码]

接口是TypeScript中定义对象形状的强大方式。

interface LabelledValue {
  label: string;
  size?: number;  // 可选属性
  readonly id: number; // 只读属性
}

function printLabel(labelledObj: LabelledValue) {
  console.log(labelledObj.label);
}

[编辑 | 编辑源代码]

TypeScript支持基于类的面向对象编程。

class Animal {
  private name: string;
  
  constructor(name: string) {
    this.name = name;
  }
  
  move(distance: number = 0) {
    console.log(`${this.name} moved ${distance}m.`);
  }
}

class Snake extends Animal {
  constructor(name: string) {
    super(name);
  }
  
  move(distance = 5) {
    console.log("Slithering...");
    super.move(distance);
  }
}

泛型[编辑 | 编辑源代码]

泛型提供了代码重用的强大方式。

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

let output = identity<string>("myString");

与JavaScript的关系[编辑 | 编辑源代码]

TypeScript是JavaScript的超集:

  • 所有合法的JavaScript代码都是合法的TypeScript代码
  • TypeScript添加了类型系统和其他特性
  • TypeScript代码需要通过编译器转换为JavaScript才能在浏览器或Node.js中运行

开发工具[编辑 | 编辑源代码]

TypeScript拥有丰富的开发工具支持:

  • Visual Studio Code - 微软开发的轻量级编辑器,内置TypeScript支持
  • WebStorm - JetBrains开发的IDE,提供强大的TypeScript支持
  • TypeScript Playground - 在线工具,用于快速测试TypeScript代码

应用案例[编辑 | 编辑源代码]

TypeScript被许多大型项目和公司采用:

  • Angular框架从2.0版本开始使用TypeScript开发
  • Vue.js 3.0使用TypeScript重写
  • React社区广泛采用TypeScript
  • Node.js的许多大型项目使用TypeScript
  • 微软的许多产品使用TypeScript开发

版本历史[编辑 | 编辑源代码]

版本 发布日期 重要特性
0.8 2012-10 首次公开发布
1.0 2014-04 正式发布
2.0 2016-09 非空类型、控制流分析
3.0 2018-07 项目引用、元组类型
4.0 2020-08 可变元组类型、标记元组元素
5.0 2023-03 装饰器、性能改进

参见[编辑 | 编辑源代码]

参考资料[编辑 | 编辑源代码]