×

typescript 泛型

2024-04-15 13:28:59 Falcon

这里一个简单的获取字符串或数字数组的第一个元素的代码,如果不使用泛型,会写成这样

function getFirstElement(array: (number | string)[]) {
  return array[0];
}
const numbers = [1, 2, 3, 4, 5];
const firstNumber = getFirstElement(numbers); // returns 1

const strings = ['hello', 'world']
const firstString = getFirstElement(strings); // returns 'hello'

console.log(firstNumber,firstString)

如果你已经知道函数内包含的特定变量的类型,取决于输入参数的类型,那么这是一个完美的使用泛型的机会,下面的例子使用泛型:

function getFirstElement<ElementType>(array: ElementType[]) {
  return array[0];
}
const numbers = [1, 2, 3, 4, 5];
const firstNumber = getFirstElement(numbers);

const strings = ['hello', 'world']
const firstString = getFirstElement(strings);
console.log(firstNumber,firstString)


在实际调用时,ElementType会替换成实际的参数类型,如在number类型中 string类型中

本文收录于