해결된 질문
작성
·
269
·
수정됨
1
UserPath를 ExtractPathParams에서 제네릭으로 받으라는 건지 아니면 이걸 바로 ExtractPathParams에 넣으라는 건지 이해가 잘 안 갑니다😂
제 생각에는 UserPath를 바로 ExtractPathParams 넣으라는 의미로 받아들여서 그렇게 풀었습니다.
답변 1
0
다시 보니까 그러네요...
문제를 좀 더 의도가 분명하게 수정했습니다.
이러면 좀 더 문제 출제의도가 분명할까요? 😅
export type Expect<T extends true> = T;
export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <
T,
>() => T extends Y ? 1 : 2
? true
: false;
type UserPath = ["users", ":id"];
type UserOrgPath = ["users", ":id", "orgs", ":orgId"];
type ExtractPathParams<T extends string[]> = unknown;
type tests = [
Expect<Equal<ExtractPathParams<UserPath>, { id: string }>>,
Expect<Equal<ExtractPathParams<UserOrgPath>, { id: string, orgId: string }>>,
];
아 이름 그대로 기본적으로 제공하는 Extract 처럼 사용하면 되는군요.
제가 급한 마음에 생각이 못미쳤나봅니다😅
감사합니다.