강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

rhkdtjd_12님의 프로필 이미지
rhkdtjd_12

작성한 질문수

실전 연습으로 익히는 고급 타입스크립트 기술

Template literals와 extract - 문제

Template literals와 extract를 활용해서 풀어보았습니다

해결된 질문

작성

·

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 유니언 타입으로 조합하셨네요.

정답 여부를 자가테스트하는 과정도 포함하셨고, 제네릭을 활용한 ExpectEqual을 사용해서 타입이 올바르게 추론되었는지 확인하는 방식을 취하셨습니다.

타입스크립트에서 이와 같은 고급 타입 유틸리티와 템플릿 리터럴 타입을 활용하는 것은 좋은 방법 중 하나입니다. 더 나아가 다음 영상에서 더욱 좋은 방법이나 다른 사례들을 접하실 수 있으실 거예요. 공부하는 과정에서 여러 방법을 시도해보는 것은 매우 유익합니다.

열심히 공부하시는 모습이 멋지네요! 만약 추가적인 질문사항이 있으시다면 문의해 주세요.

rhkdtjd_12님의 프로필 이미지
rhkdtjd_12

작성한 질문수

질문하기