二手前端写 react 组件的时候遇到的问题
先贴代码
useTableWithCustomKey 的第二个参数 keyName 的类型应该是 T 中所有类型是 string 类型的字段名称。
然后用 useTableForName 这种形式调用是没问题的
但是用 useTable 这种再套一个 T extends { name: string },然后传入 name 就不行了,报错是
Argument of type 'string' is not assignable to parameter of type 'keyof StringOnly<T>'.
Type '"name"' is not assignable to type '(T[K] extends string ? K : never) | (T["name"] extends string ? "name" : never)'.ts(2345)
请问怎样才能消除这个报错。
原始需求是写一个 table 组件,有的对象是用 name 做 key ,有的是用 id 做 key
再贴一个
https://codesandbox.io/s/ts-playground-forked-qgnqhg?file=/src/index.ts
方便大佬们在线测试
先贴代码
useTableWithCustomKey 的第二个参数 keyName 的类型应该是 T 中所有类型是 string 类型的字段名称。
然后用 useTableForName 这种形式调用是没问题的
但是用 useTable 这种再套一个 T extends { name: string },然后传入 name 就不行了,报错是
Argument of type 'string' is not assignable to parameter of type 'keyof StringOnly<T>'.
Type '"name"' is not assignable to type '(T[K] extends string ? K : never) | (T["name"] extends string ? "name" : never)'.ts(2345)
请问怎样才能消除这个报错。
原始需求是写一个 table 组件,有的对象是用 name 做 key ,有的是用 id 做 key
再贴一个
https://codesandbox.io/s/ts-playground-forked-qgnqhg?file=/src/index.ts
方便大佬们在线测试