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 | 装饰器、性能改进 |