【发布时间】:2022-11-14 18:49:40
【问题描述】:
我正在创建一个简单的挂钩,通过提供 items、labelKey 和 valueKey 来检索选项对象。
这是我的钩子参数界面:
interface IProps<T> {
items: T[];
labelKey: keyof T;
valueKey: keyof T;
}
这是钩子本身:
const useOptions = <T extends object>(props: IProps<T>) => {
const { items, labelKey, valueKey } = props;
const options = useMemo<SelectOption[]>(() => {
return items.map((item) => ({
label: item[labelKey],
value: item[valueKey],
}));
}, [items]);
return options;
};
export default useOptions;
最后这是SelectOption,我打算得到一个这种类型的数组。
export interface SelectOption {
value: number | string;
label: number | string;
}
我是如此接近,但我找不到我在这里失踪的东西。这是我看到的打字稿错误:
Type 'T[string]' is not assignable to type 'string | number'.
【问题讨论】:
标签: reactjs typescript react-hooks