You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Typescript使用独立定义的泛型函数类型时如何在函数体内引用泛型T

要在函数体内引用该泛型类型,只需要在实现函数时,显式声明和类型定义匹配的泛型参数即可,示例代码如下:

type Foo = <T>(x: T) => T 

const foo: Foo = <T>(x: T) => {
  // 此处可以直接使用声明的泛型 T
  let a: T
  // 函数执行逻辑
  a = x
  return a
}

注意事项

  • 如果你的项目使用了TSX(React的TS语法),泛型的尖括号会被识别为JSX标签,此时需要在泛型参数后加一个逗号规避语法冲突:
    const foo: Foo = <T,>(x: T) => {
      let a: T
      // 逻辑实现
      return a
    }
    
  • 类型Foo中定义的泛型<T>属于函数类型的参数,仅作用于类型定义本身,不会作用到具体的函数实现作用域,因此需要在实现函数时显式声明同名泛型,TS会自动校验该泛型和上层类型定义的匹配性,无需担心类型不一致的问题。

内容的提问来源于stack exchange,提问作者Donald Zhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 14:36:04