TypeScript 笔记
简介
TypeScript是一种构建于JavaScript之上的编程语言,它添加了静态类型检查和其他一些特性,有助于更可靠和可维护的代码编写。 TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。 [1]
TypeScript添加了很多尚未正式发布的ECMAScript新特性(如装饰器 [2] )。2012年10月,微软发布了首个公开版本的TypeScript,2013年6月19日,在经历了一个预览版之后微软正式发布了正式版TypeScript。当前最新版本为TypeScript 4.9。 [3][18]
基础类型
TypeScript引入了一些基础数据类型:
typescriptCopy code // 布尔类型 let isDone: boolean = false;
// 数字类型 let num: number = 42;
// 字符串类型 let name: string = "John";
// 数组类型 let numbers: number[] = [1, 2, 3];
// 元组类型 let tuple: [string, number] = ["apple", 5];
接口(Interfaces)
接口用于定义对象的结构:
typescriptCopy code interface Person { firstName: string; lastName: string; }
function greet(person: Person): string {
return Hello, ${person.firstName} ${person.lastName}!;
}
let user: Person = { firstName: "John", lastName: "Doe" }; console.log(greet(user)); // 输出: Hello, John Doe!
类(Classes)
TypeScript支持面向对象编程,包括类的概念:
typescriptCopy code class Animal { name: string;
constructor(name: string) { this.name = name; }
makeSound(sound: string): void {
console.log(${this.name} makes ${sound} sound);
}
}
let dog = new Animal("Dog"); dog.makeSound("Woof"); // 输出: Dog makes Woof sound
泛型(Generics)
泛型允许在定义函数、类、接口时延迟指定具体类型:
typescriptCopy code function identity(arg: T): T { return arg; }
let numId: number = identity(5); let strId: string = identity("hello");
类型断言(Type Assertion)
类型断言用于告诉编译器变量的实际类型:
typescriptCopy code let value: any = "this is a string"; let strLength: number = (value as string).length;
高级类型
TypeScript支持交叉类型、联合类型、类型别名等高级类型:
typescriptCopy code type Point = { x: number; y: number }; type Color = "red" | "green" | "blue";
function drawShape(shape: Point & { color: Color }): void {
console.log(Drawing a ${shape.color} shape at (${shape.x}, ${shape.y}));
}
let shape: Point & { color: Color } = { x: 10, y: 20, color: "red" }; drawShape(shape); // 输出: Drawing a red shape at (10, 20)
主要功能主要功能
TypeScript的作者是安德斯·海尔斯伯格,C#的首席架构师。 它是开源和跨平台的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。 TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以运行在TypeScript环境中。TypeScript是为大型应用的开发而设计,并且可以编译为JavaScript。 TypeScript 支持为已存在的 JavaScript 库添加类型信息的头文件,扩展了它对于流行库的支持,如 jQuery,MongoDB,Node.js 和 D3.js 等。这些第三方库的类型定义本身也是开源的,所有开发者都能参与贡献。