一、TS和JS比较
二、函数类型
函数类型的定义、函数结构类型声明;
-
void 用来表示空,以函数为例,就是表示没有返回值的函数 function fn(): void{ }
-
never 表示永远不会返回结果 function fn2(): never{ throw new Error('报错了'); }
-
设置函数结构的类型声明: 语法:(形参:类型,形参:类型...) => 返回值 let d:(a: number,b: number) => number; //指定义一个类型,参数类型都为number,函数返回值也是number; 例:相当于; d = function (n1: string,n2: string): number{ return 10; }
三、接口类型
接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现。接口中所有属性方法不可以有确定值,它和类型声明很像,区别是它是一个关键字 接口名,{}而类型声明是关键字 类型名={};想要使用接口来表示数组时,可以为数组的索引值和数值设置不同的类型。
四、高级类型
五、泛型
官方定义: 软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型, 这在创建大型系统时为你提供了十分灵活的功能。 在像C#和Java这样的语言中,可以使用泛型来创建可重用的组件, 一个组件可以支持多种类型的数据。这样用户就可以以自己的数据类型来使用组件。
在函数中使用泛型:
function test (arg:T):T{ console.log(arg); return arg; } test(111);// 返回值是number类型的 111 test<string | boolean>('hahaha')//返回值是string类型的 hahaha test<string | boolean>(true);//返回值是布尔类型的 true