해결된 질문
작성
·
214
1
정답은 맞췄지만, 좋은 방법인지는 모르겠습니다
import { Equal, Expect } from "./helper";
type Routes = "/users" | "/users/:id" | "/products" | "/products/:id";
type DynamicRoutes = `${Extract<Routes, "/users/:id"> | "/products/:id"}`;
type tests = [Expect<Equal<DynamicRoutes, "/users/:id" | "/products/:id">>];
다음 영상을 보면 알게 되겠지요!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
rhkdtjd_12님, 고급 타입스크립트 기능을 활용해서 문제를 해결하신 것 같습니다.
주신 코드 내용을 봤을 때, Extract
유틸리티 타입을 사용하여 Routes
유니언 타입에 포함된 라우트들 중 동적 파라미터를 포함하는 타입들(/users/:id
, /products/:id
) 만 추출하셨고, Template literals
를 사용하여 동적 라우트 문자열 타입들을 DynamicRoutes
유니언 타입으로 조합하셨네요.
정답 여부를 자가테스트하는 과정도 포함하셨고, 제네릭을 활용한 Expect
와 Equal
을 사용해서 타입이 올바르게 추론되었는지 확인하는 방식을 취하셨습니다.
타입스크립트에서 이와 같은 고급 타입 유틸리티와 템플릿 리터럴 타입을 활용하는 것은 좋은 방법 중 하나입니다. 더 나아가 다음 영상에서 더욱 좋은 방법이나 다른 사례들을 접하실 수 있으실 거예요. 공부하는 과정에서 여러 방법을 시도해보는 것은 매우 유익합니다.
열심히 공부하시는 모습이 멋지네요! 만약 추가적인 질문사항이 있으시다면 문의해 주세요.