请问老师,T extends {} 和 T extends object 有区别吗?

来源:8-12 【 TS 泛型类+泛型约束组合应用】通用分页类优化【通用类,移植即用】

匆匆又夏天丶

2021-09-02

当我调用一个方法,比如 test<object>()test<{}>() 具体给泛型值的时候 这两种值有具体区别吗,哪种用的多一些

写回答

2回答

keviny79

2021-09-02

//img.mukewang.com/szimg/6130adf308a68a8410300627.jpg

//img.mukewang.com/szimg/6130adf608b5cf8b10650521.jpg

//img.mukewang.com/szimg/6130adf6082615eb08690632.jpg

截图解释



1
2
keviny79
回复
匆匆又夏天丶
谢谢同学好评,刚注意到信息!
2021-09-08
共2条回复

keviny79

2021-09-02

  •   请首先仔细看3张截图【先看最后一张,再看第一张,第二张】,最后一章截图展示 了object和{}的区别,

  • 然后看下面的文字


  • 那么如果只是想把泛型变成对象类型, 用test<object>  , 如果想把泛型变成接受除了undefined和null之外的任意其他类型用 test<{}>


  • T extends object 用于对象类型的泛型场景,平时用的最多。

  • 而 T extends {} 和 T={}  一样,没有区别了.可以接受除了 undefined和null之外的任意类型的数据

  •  头两张截图展示了  T ={} 和 T 的区别


1
0

晋级TypeScript高手,成为抢手的前端开发人才

轻松驾驭 TypeScript 高级用法, 突破前端成长瓶颈

871 学习 · 425 问题

查看课程