TypeScript 类、泛型的使用实践记录|青训营

83 阅读1分钟

前言

泛型是一种特殊的变量,只用于表示类型而不是值,称之为:类型变量。 泛型的定义:可以支持不特定的数据类型 要求传入和返回的参数一致。

通俗地说:泛型就是解决类,接口,方法的复用性,和对不特定数据类型的支持

泛型的好处

  1. 函数和类可以轻松支持多种类型,增强程序的拓展性
  2. 不必写冗长的业务代码,增强代码的可拓展性
  3. 灵活控制类型之间的约束

泛型的基本使用

函数参数

  • 完成输入和输出的统一,并且做到输入输出任何类型。
function print<T>(arg:T):T {
    console.log(arg);
    return arg;
}
  • TS自动类型判断
print<Number>(123) //自动判断为Number
  • 结合interface一起使用
interface Iprint<T> {
    (arg: T): T
}
function print<T>(arg:T) {
    console.log(arg);
    return arg;
}
const Printing: Iprint<number> = print

默认参数

interface Iprint<T = number> {
    (arg: T): T
}
function print<T>(arg:T) {
    console.log(arg);
    return arg;
}
const Printing: Iprint = print

处理多个函数参数

此类一般要求传入多项元组,进行一定的操作后并返回一个元组。 假设要进行一个元素的交换,这个问题我们可以轻松得到解决。

function swap<T, U>(tuple: [T, U]): [U, T]{
    return [tuple[1], tuple[0]];
}

函数副作用操作

此一般用于异步请求等其他副作用操作,假设像根据不同的url请求返回不同类型的数据。

function request(url:string) {
    return fetch(url).then(res => res.json());
}

最后总结

TS中类、泛型的使用会让避免代码的重复编写,能够极大地提高我们的实践效率。