Typescript特点:
TS相比JS的优势:
编译器推荐:Vscode
扩展:
- 元组类型: 用来表示已知元素数量和类型的数组,各元素类型不必相同,在声明时对应位置的类型需要相同;
- enum(枚举类型):用于定义数值集合;
- null:表示对象缺失;
- undefined:初始化变量一直未定义的值;
- never是其他类型的子类型,代表从不会出现的值。
接口(interface):在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计你面。接口起到一种限制和规范的作用。
注:使用interface关键字定义接口一般首字母大写,并在接口名称上加上大写 I 前缀。
TS中有两种常见的定义函数的方式——函数声明和函数表达式
函数声明:
- function sun(x: number, y: number): number{
- return x + y;
- }
函数表达式:
- let sum: (x: number, y: number) => number = function(x: number, y: number): number{
- return x + y;
- }
注:不要混淆了TS中的=>和ES6中的=>
TS中表示函数的定义,左边是输入类型,需要用括号括起来,右边是输出类型,
ES6中是一种应用广泛的箭头函数。
函数重载:具备不同参数的同名函数。
函数重载具有两天特征:名称相同,参数不同(参数类型、个数不同)
函数重载是多态的一种体现
TS中函数重载主要包括两部分:函数声明,和函数实现。
函数声明:是TSC解析的一种声明体现,实际编译中,并不好编译成具体代码。
参数不同的函数重载:
function print(info: string, message: string): void;
而当着两种声明,同时存在在TS的声明文件中,我们就需要用函数重载来实现,这是js没有的特性。
参数个数相同,但是类型不同的函数重载
函数声明中参数的类型是不同的,在这种情况下,就要用到联合类型
- function print(message: string | number) {
- conlose.log(message)
- }
可以看出,在TS中实现函数重载的方式分别是利用了TypeScript中的两个类型特性:可选类型和联合类型。