TS 泛型
一、泛型是什么?
概念:允许同一个函数接受不同类型参数的一种模板,可以理解为类型的变量,
优点:比联合类型更灵活,比any更严谨。
解决:控制函数输入输出一致
二、如何运用?
1.基本使用:常用T(type)来代表类型,如函数有多个类型的参数,可以用U、V来追加
function foo<T>(value: T): T{ return value } const str: string = foo<string>('sofia') console.log(str, 'str')
2.接口
可以使用泛型来控制函数的输入和输出
interface InOutNumber<T> { (arg: T): T; } let createNumber: InOutNumber<number>; createNumber = function<T>(value: T):T { console.log(value) // 1 return value } createNumber(1)
3.类
class GenericNumber<T> { zeroValue: T; add: (x: T, y: T) => T; } let myGenericNumber = new GenericNumber<number>(); myGenericNumber.zeroValue = 0; myGenericNumber.add = (x, y) => x + y; console.log(myGenericNumber.add(1, 1)); // 2