跳到主要内容

TypeScript

TypeScript 是由 Microsoft 开发和维护的开源编程语言。它是 JavaScript 的一种静态类型超集,这意味着它在 JavaScript 的基础上添加了静态类型检查和其他功能,同时仍然与 JavaScript 代码兼容。 TypeScript 旨在帮助开发人员编写更健壮和易维护的代码,特别是针对更大更复杂的应用程序。

学习资源

JavaScript 的数据类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。

原始数据类型包括:布尔值、数值、字符串、null、undefined 以及 ES6 中的新类型 Symbol 和 ES10 中的新类型 BigInt。

变量申明

基本类型

let pageNo: number = 1
let name: string = 'spacexcode'
let isActive: boolean = false
let arr: number[] = [1, 2, 3]
let arr2: Array<number> = [1, 2, 3] // 泛型数组
let config: object = {}
let attr: undefined = undefined;
let data: null = null;

类型补充

  • 枚举 Enum

使用枚举类型为某个变量可能有的所有值取个语义化的别名,方便取用

enum Fruit {
APPLE = '苹果',
ORANGE = '橘子',
BANNER = '香蕉',
}
  • 元祖 Tuple

允许数组各元素的类型不必相同。

let data: [string, number] = ['spacexcode', 4];
  • 任意值 Any

当一个值不确定类型,泛指任何类型

let data: any = "spacexcode";
data = 1;
data = false;
  • 空值 void

通常用于函数,表示没有返回值。

function save(): void {
console.log("success");
}
  • 接口 interface

在面向对象语言中,接口(Interfaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类(classes)去实现(implement)。

TypeScript 中的接口是一个非常灵活的概念,除了可用于对类的一部分行为进行抽象以外,也常用于对「对象的形状(Shape)」进行描述。

interface Person {
name: string;
age: number;
sex?: string;
readonly birth: Date;
}

可选与只读: ? 表示可选参, readonly 表示只读

const P1 = {
name: "Timfan",
age: 24,
sex: "Male",
birth: new Date()
}
P1.birth = new Date(1991, 2, 4) // error
P2 = {
name: "Fants",
age: 28,
birth: new Date(2020, 3, 22)
} // right

泛型

泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。

常见于当函数中输出的类型和输入的要求一致时,而输入参数的类型又不能确定时。

语法 <T>(arg:T):T 其中 T 为自定义变量

const hello : string = "Hello vue!"
function say<T>(arg: T): T {
return arg;
}
console.log(say(hello)) // Hello vue!

泛型约束

待完善。。。

交叉类型

待完善。。。

联合类型

待完善。。。

函数重载

待完善。。。