泛型(TypeScript学习笔记)

泛型

解决函数传入参数类型与函数返回值类型一致的问题。javascript

一个函数,我但愿传入数字,返回数字;传入字符串,返回字符串, 即java

function fn1 (a: number): number {
  return a + 1
}

function fn2 (b: string): string {
  return b + ' :fn2'
}
复制代码

有没有支持不一样类型的方式,any数组

function fn3 (c: any): any {
  return c
}
复制代码

但是使用any,不能保证返回值类型和传入参数类型属于相同类型函数

使用泛型!ui

function fn1<T>(a: T): T{
  return a + 1
}
复制代码

能够看到,使用尖括号便可使用泛型函数spa

还有一种方式使用泛型函数:类型推断,什么也不用作,智能判断code

有个问题,下面的泛型函数,函数体中访问了参数的length属性,若是传入参数属字符串或数组,没问题,但若是是number类型呢,length属性确定是undefinedip

function fn1<T>(a: T): T{
  console.log(a.length)
  return a + 1
}
复制代码

使用泛型变量, 声明泛型数组便可字符串

function fn1<T>(a: T[]): T[]{
  console.log(a.length)
  return a + 1
}
复制代码
相关文章
相关标签/搜索