泛型
T是什么意思
- T(Type)用来表示类型,在泛型中用来表示类型的范围
泛型是什么
- 其实可以理解为声明一个类型,但是不赋最终的类型,类似于js中的
var a;
- 且泛型更多的是可以用来帮我们约束类型的范围
- 在泛型中也可以通过
extends
继承
function studen <T,U> (age:T, name:U) : T {
return age;
}
studen<number,string>(16,'zhoukingzz')
studen(16,'zhoukingzz')
type nameType = string | number
interface student <T extends nameType>{
name: T ;
age: number;
}
type 和 interface 的区别
type
:类型别名。我们可以用它来定义一个基本类型,也可以用它来定义联合类型。同时type支持泛型
interface
:只能用来定义对象类型。在定义接口的时候,是可以同时声明对象上的属性和方法的。
相同点
type
和interface
都可以用来描述对象或者函数。举个栗子:
type student = {
age:number;
name:string;
}
interface student {
age:number;
name:string;
}
type joinClass = (age:number, name:string) => void
interface joinClass {
(age:number, name:string) : void
}
不同点
type
和interface
有各自不同的扩展方式
type student = {
age:number;
name:string;
}
type moreInfo = student & {
gender: boolean;
}
interface student {
age:number;
name:string;
}
interface moreInfo extends student {
gender: boolean;
}
- 接受类型不同
type
可以接收基本类型、函数类型、映射类型、联合类型和元组类型
interface
接受对象类型
- 且同名接口会自动合并,而类型别名不会