采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
刘老师您好,各位同学好。请问在7-5中为什么不能用interface来规范useParams()中的泛型,而一定要用type? 就是 const params = useParams() 中matchParams为什么是type不能是interface. 望各位解答。
因为useParams()这个勾子函数需要传入的是一个string类型的字符串,而不是对象,但是interface可以定义的类型恰恰是一个对象,所以此处最好用type来进行定义,因为type定义的类型刚好是一个字符串类型。
非常感谢
回复 weixin_慕移动7519531:我也有这样的疑问,但是你这个回答是有问题的,useParams传入的参数类型并不单单是 string 类型,而是 <ParamsOrKey extends string | Record<string, string | undefined> ,有这样的一个泛型约束,表明其参数不仅仅可以是 string ,也可以是 Record 构建的一个对象类型,如果使用 interface 定义这个对象类型,理论上应该是没问题的,以我对 typescript 的理解, type 和 interface 定义对象类型都是一样的效果,但实际确实是会报错,也是我疑惑的地方。求老师能解答一下,谢谢
请忽略
登录后可查看更多问答,登录/注册
React 18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能
1.1k 5
1.8k 10
1.0k 2
2.5k 2
1.2k 1
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号