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

 

posted @   Sofiaღ  阅读(59)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2020-05-18 使用call、apply、bind继承及三者区别
点击右上角即可分享
微信分享提示