范型(泛型)

考虑当前使用的数据类型,也考虑了未来支持的数据类型,范型要求是传入的数据类型跟返回的数据类型必须是一致的。

范型函数

function getName (name: T): T {
  return name
}
alert(getName('Mistic'))    // 如果传入的值不是string类型,Ts在编译的时候就会报错

function getAddress (address: T): any { // 返回任意类型
  return 'my address is ' + address
}
alert(getAddress(703))

范型类

class MinNum  {
  public list: Array = []
  add(value: T): void {
    this.list.push(value)
  }
  minNum(): T {
    let minNum: T = this.list[0]
    for (let i = 0; i < this.list.length; i++) {
      if (minNum > this.list[i]) {
        minNum = this.list[i]
      }
    }
    return minNum
  }
}
let mn = new MinNum()
mn.add(2)
mn.add(1)
mn.add(3)
console.log(mn.minNum())
let mN = new MinNum()
mN.add('我')
mN.add('Wi-Fi')
mN.add('Mayumi')
console.log(mN.minNum())

你可能感兴趣的:(范型(泛型))