欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > Typesrcipt泛型约束详细解读

Typesrcipt泛型约束详细解读

2025/2/1 1:16:07 来源:https://blog.csdn.net/ThomasChan123/article/details/145328528  浏览:    关键词:Typesrcipt泛型约束详细解读

代码示例:

// 如果我们直接对一个泛型参数取 length 属性, 会报错, 因为这个泛型根本就不知道它有这个属性
(() => {// 定义一个接口,用来约束将来的某个类型中必须要有length这个属性interface ILength{// 接口中有一个属性lengthlength:number}function getLength<T extends ILength>(x: T): number {return x.length}console.log(getLength<string>('终于等到你,还好我没放弃'))// console.log(getLength<number>(123))
})()

重要代码解析:

  • function getLength<T extends ILength>(x: T): number:定义了一个名为 getLength 的泛型函数。<T extends ILength> 是类型参数部分,其中 T 是类型参数,extends ILength 表示类型参数 T 必须是实现了 ILength 接口的类型,也就是 T 类型的对象必须具有 length 属性。
  • x: T 表示函数接受一个类型为 T 的参数 x
  • : number 是函数的返回值类型声明,表示该函数将返回一个 number 类型的值。
  • return x.length函数体部分,通过返回 x 的 length 属性值来获取传入对象的长度。由于在类型参数上添加了 extends ILength 的约束,TypeScript 编译器能够确保 x 具有 length 属性,从而避免了直接对泛型参数取 length 属性可能导致的类型错误。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com