【发布时间】:2023-03-11 13:13:01
【问题描述】:
我想创建 React 钩子来获取用户设置。 这是一个简化的例子:
import React from "react";
interface UserSettings
{
SHOW_TIME_IN_HEADER: boolean;
GRID_SIZE: number;
}
const USER_SETTINGS: UserSettings = {
SHOW_TIME_IN_HEADER: true,
GRID_SIZE: 8,
};
export const useUserSetting = <S extends keyof UserSettings>(...setting: S[]): UserSettings[S][] =>
{
return setting.map(s => USER_SETTINGS[s]);
};
export const Component = () =>
{
const [
showTime, // Should be boolean but it is number | boolean
gridSize // Should be number but it is number | boolean
] = useUserSetting("SHOW_TIME_IN_HEADER", "GRID_SIZE");
return (
<div>
{"..."}
</div>
);
};
我希望钩子返回一个数组,其中包含相应类型的设置值。在此示例中,返回值的类型均为 number | boolean,但其中只有一个类型应为 number 或 boolean。
这可能吗?该方法将如何命名?我现在最大的问题是找到这个问题的正确单词以便能够搜索它。
如果有人知道我的问题的答案或只知道描述我问题的词语,请告诉我。谢谢。
【问题讨论】:
标签: typescript types typescript-generics