请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

7-5 useParams中为什么只能用type,不能用interface

刘老师您好,各位同学好。请问在7-5中为什么不能用interface来规范useParams()中的泛型,而一定要用type?
就是 const params = useParams() 中matchParams为什么是type不能是interface.
望各位解答。

正在回答 回答被采纳积分+3

1回答

The_Web_King 2022-08-31 19:54:54

因为useParams()这个勾子函数需要传入的是一个string类型的字符串,而不是对象,但是interface可以定义的类型恰恰是一个对象,所以此处最好用type来进行定义,因为type定义的类型刚好是一个字符串类型。

2 回复 有任何疑惑可以回复我~
  • 非常感谢
    回复 有任何疑惑可以回复我~ 2022-09-08 01:11:34
  • 起点丶 回复 提问者 weixin_慕移动7519531 #2
    回复 weixin_慕移动7519531:我也有这样的疑问,但是你这个回答是有问题的,useParams传入的参数类型并不单单是 string 类型,而是 <ParamsOrKey extends string | Record<string, string | undefined>  ,有这样的一个泛型约束,表明其参数不仅仅可以是 string ,也可以是 Record 构建的一个对象类型,如果使用 interface 定义这个对象类型,理论上应该是没问题的,以我对 typescript 的理解,  type 和 interface 定义对象类型都是一样的效果,但实际确实是会报错,也是我疑惑的地方。求老师能解答一下,谢谢
    回复 有任何疑惑可以回复我~ 2024-04-28 10:44:14
  • 请忽略
    回复 有任何疑惑可以回复我~ 2024-04-28 10:56:42
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号