泛型的概念
泛型:任意类型// 泛型好处:既有类型检查,又可以传入任意类型function getMsg<T>(msg: T) { console.log(msg);}getMsg<string>('hello');getMsg<number>(123);// 报错getMsg<string>(123);
/* 在定义函数或是类时,如果遇到类型不明确就可以使用泛型*/function fn<T>(a:T):T { return a;}// 可以直接调用具有泛型的函数// Ts会自动推断fn(10); // 不指定泛型,Ts可以自动对类型进行判断fn<string>('hello'); // 指定泛型function fn2<T, K>(a: T, b: K): T{ console.log(b); return a;}fn2<number, string>(123, 'zhangsan')interface Inter{ length: number;}function fn3<T extends Inter>(a:T):number { return a.length;}class MyClass<T>{ name: T; constructor(name: T) { this.name = name; }}const mc = new MyClass<string>('zhangsan')