【发布时间】:2021-06-16 16:25:43
【问题描述】:
我们需要键入函数,该函数需要一个键(字符串)列表,并生成具有相同键的对象,当键以? 开头时,值为string | undefined,否则只是string。
export function useParams<T extends string>(
expected: T[]
): { [key in T as NonOptional<T>]: string } {
// ... our custom implementation
return null as any;
}
type NonOptional<T extends string> = T extends `?${infer Inner}` ? Inner : T;
// Should produce type { a: string; b: string | undefined }
const result = useParams(['a', '?b']);
但是,我不确定如何输入输出。
【问题讨论】: