typescript 泛型的理解
在学习泛型之前,先明确一下泛型的作用:就是类型不明确的时候定义的一个变量
下面结合代码来讲解下泛型
- 定义一个类型叫做T
function fn <T>(a:T):T {
return a
}
fn(10)
fn<string> ('hello')
// 调用的时候不指定类型, ts 会自动推断 但是还是建议使用第二种写法指定泛型的类型
上面的函数 参数类型就是一个泛型 并且定义了T为这个不知道类型的变量 在函数中这样使用泛型可以保证 传入的值和返回值的类型相同
-
将泛型指定一定的范围
可以通过定义接口或者类的形式,来给泛型定义一个范围
interface Inter { length: number } function fn1<T extends Inter> (a:T):number { return a.length } // 通过 T extends Inter 来指定传入的参数 a 实现接口 Inter 那就必然包含 length属性 fn1('123') /// 正常 fn1(123) // 错误 fn1({length:10}) // 正常 fn1({name:'cg'}) // 错误
\