前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(二十四)泛型约束

(二十四)泛型约束

作者头像
老怪兽
发布2023-02-22 15:05:48
1790
发布2023-02-22 15:05:48
举报
文章被收录于专栏:老怪兽的前端之旅

# 一、泛型约束

说明

在我们之前的定义泛型的时候可以给它传递任何类型的泛型,但是在开发中我们需要在固定的类型中选择一个传递,传递其他的则无效,像这样约束泛型该怎么写呢

  • 例子
代码语言:javascript
复制
interface Product {
    title: string
    price: number
}

// 继承上面的属性, 然后在添加自己独有的属性
interface Tshirt extends product {
    size: 'S' | 'L' | 'M'
}

// 这里如果是传递的 Product 的子类的话就会验证成功,否则的话就会验证失败
function displayTitle<T extends Product>(t: T) {
    console.log(t.title)
}

let product: Product = {
    title: '牛仔裤',
    price: 100
}

displayTitle<Product>(product)          // ok
displauTitle<string>(product)           // 不满足泛型约束,因为上面写的是 Product 的子类才可以通过验证

let tshirt: Tshirt = {
    title: '牛仔裤',
    price: 100,
    size: 'M'    
}
displayTitle<Tshirt>(tshirt)        // 这样也是 ok 的因为 Tshirt 是 Product 的子类

# 总结-写在最后

说明

使用了泛型约束以后,就可以指定一组泛型当中的泛型了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年11月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 一、泛型约束
  • # 总结-写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档