什么是 TypeScript 中的泛型?请给出一个使用泛型的示例。

泛型(Generics)是 TypeScript 中的一种高级特性,允许你在定义函数、接口或类时,指定一个或多个类型参数。

这些类型参数在使用时会被具体的类型替换,从而使代码更具通用性和复用性。

  • 示例: 假设你有一个函数,用于从数组中获取一个元素,但你希望这个函数能够处理不同类型的数据。可以使用泛型来实现:

    typescript 复制代码
    function getElement<T>(array: T[], index: number): T {
      return array[index];
    }
    
    const numbers = [1, 2, 3, 4, 5];
    const number = getElement(numbers, 2); // number 的类型是 number
    
    const strings = ['a', 'b', 'c', 'd', 'e'];
    const string = getElement(strings, 1); // string 的类型是 string
  • 解释

    • 在函数定义中,<T> 表示一个类型参数,T 可以被任何类型替换。
    • 当调用 getElement 函数时,TypeScript 会根据传入的数组类型自动推断 T 的具体类型。
    • 使用泛型后,getElement 函数可以处理不同类型的数据,同时保持类型安全。
相关推荐
A_ugust__3 小时前
vue3+ts 封装跟随弹框组件,支持多种模式【多选,分组,tab等】
前端·javascript·vue.js
林九生3 小时前
【Vue3】v-dialog 中使用 execCommand(‘copy‘) 复制文本失效的原因与解决方案
前端·javascript·vue.js
yi碗汤园3 小时前
【一文了解】C#的StringSplitOptions枚举
开发语言·前端·c#
cxr8285 小时前
BMAD框架实践:掌握story-checklist提升用户故事质量
前端·人工智能·agi·智能体·ai赋能
emma羊羊5 小时前
【xsslabs】第12-19关
前端·javascript·靶场·xss
真的想不出名儿7 小时前
vue项目引入字体
前端·javascript·vue.js
胡楚昊8 小时前
Polar WEB(1-20)
前端
吃饺子不吃馅8 小时前
AntV X6图编辑器如何实现切换主题
前端·svg·图形学
余防9 小时前
XXE - 实体注入(xml外部实体注入)
xml·前端·安全·web安全·html
jump_jump9 小时前
前端部署工具 PinMe
运维·前端·开源