📜  行为 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:27:52.848000             🧑  作者: Mango

行为 - TypeScript

简介

TypeScript 是一种由微软开发的开源编程语言,是 JavaScript 的一个超集,意味着 TypeScript 包含了 JavaScript 的所有特性,同时也提供了一些额外的特性和语法糖。

TypeScript 通过引入类型系统和 ES6+ 的语法特性,提高了代码的可读性、可维护性,让程序员更加容易地编写大型复杂应用。同时,TypeScript 还可以编译成 JavaScript,可以在任何现代浏览器和操作系统运行。

TypeScript 类型系统

在 TypeScript 中,可以定义变量、函数、类等所有的东西都有一个具体的类型,这个类型可以在编写代码时就被确定下来,有助于编写的可靠性和代码的可读性,同时也可以避免很多常见的运行时错误。

基本类型

TypeScript 中的基本类型包括 number,boolean,string,null,undefined,void 和 symbol 等,使用方法和 JavaScript 类似,但是需要在定义变量时标注类型:

let count: number = 0;
let isDone: boolean = false;
let message: string = 'Hello, World!';
let u: undefined = undefined;
let n: null = null;
let nothing: void = undefined;
let sym1 = Symbol('key');
let sym2 = Symbol('key');
复杂类型

除了基本类型,TypeScript 还支持对象、数组、元祖、枚举等复杂类型。

  • 对象

在 TypeScript 中可以使用接口(Interface)表示对象的类型,通过统一的接口定义可以保证使用方按照协议来使用对象,避免错误。

interface Person {
  name: string;
  age: number;
}

const person: Person = {
  name: 'John',
  age: 30
};
  • 数组

在 TypeScript 中可以定义数组的元素类型,避免不同类型的元素混在一起带来的问题。

let nums: number[] = [1, 2, 3];
let names: string[] = ['Tom', 'John', 'Mary'];
  • 元组

元组是指长度和元素类型不变的数组,可以理解为具有多个类型的数组。在 TypeScript 中可以定义元组类型,不同于数组的是,元素的类型是可以不同的。

let tuple: [string, number] = ['John', 30];
  • 枚举

TypeScript 中的枚举可以方便地定义一系列常量,可以避免手写常量字符串带来的错误。

enum Color {
  Red,
  Green,
  Blue
}

let c: Color = Color.Green;
类型断言

有时候需要告诉 TypeScript 编译器一个变量的具体类型,可以使用类型断言(Type Assertion):

let someValue: any = 'Hello, World!';
let message: string = (someValue as string).toUpperCase();
泛型

TypeScript 中可以使用泛型(Generics)来增加代码的复用性。泛型在调用时具有类型检查的功能,保证类型的一致性和安全性。

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

let output = identity<string>('Hello, World!');
TypeScript 编译器

TypeScript 代码必须先编译成 JavaScript 才能执行,TypeScript 编译器可以将 TypeScript 转换为 JavaScript。可以使用命令行编译器(tsc),或者在编辑器中通过插件实现实时编译。

使用 tsc 命令行

先安装 TypeScript:

npm install -g typescript

然后编写 TypeScript 文件,例如 hello.ts:

function sayHello(name: string) {
  console.log('Hello, ' + name);
}

sayHello('World');

使用 tsc 命令编译成 JavaScript:

tsc hello.ts

会生成同名的 JavaScript 文件 hello.js:

function sayHello(name) {
  console.log('Hello, ' + name);
}

sayHello('World');
使用编辑器插件

很多编辑器都支持 TypeScript 编译器的自动检测和编译。例如 VS Code ,安装好 TypeScript 插件之后,在编辑器中打开 TypeScript 文件,即可自动编译成 JavaScript。

总结

TypeScript 提供了强大的类型系统和各种语言特性,可以让 JavaScript 编写的代码更加可靠、易读和可维护。在大型复杂应用中更是可以发挥出强大的优势。同时,由于 TypeScript 可以编译成 JavaScript,也可以与其他 JavaScript 库和框架一起使用。