查看 useParams 定义可以看出,传入的参数类型并不单单是 string 类型,而是 <ParamsOrKey extends string | Record<string, string | undefined> ,有这样的一个泛型约束,表明其参数不仅仅可以是 string ,也可以是 Record 构建的一个对象类型,如果使用 interface 定义这个对象类型,理论上应该是没问题的,因为 type 和 interface 虽然有区别,但此处定义对象类型是应该是等价的,这两种方式定义 MatchParams 它都是对象类型,复合 Record<string, string | undefined> 这个泛型约束才对。实在是有些困惑,望老师解答
React 18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能
了解课程