logweft.

TS-L4-014 / 타입 수준 파싱

SQL 자리표시자 인수

고급

문제

Params<S>가 SQL 문자열의 ? 개수만큼 unknown 원소를 가진 튜플이 되게 정의하세요. 따옴표·주석 없는 문자열만 다룹니다.

요구한 타입·변수 이름을 유지하세요. 각 타입 계약이 컴파일되는지를 확인합니다. 코드를 실행하는 문제는 아닙니다.

타입 계약

자리표시자 두 개
type Check = Expect<Equal<Params<"a=? AND b=?">, [unknown,unknown]>>;
없음
type Check = Expect<Equal<Params<"SELECT 1">, []>>;
힌트

첫 ? 뒤의 나머지 문자열을 재귀 처리하세요.

해설·정답 보기

실제 SQL 문법 파서가 아닌 단순 문자열 모형입니다. 누적 튜플 길이로 인수 개수를 표현합니다.

type Params<S extends string,A extends unknown[]=[]> = S extends `${string}?${infer R}` ? Params<R,[...A,unknown]> : A;
모르는 문법은 코드 사전에서 ↗
answer.ts타입 확인

코드는 이 브라우저에 자동 저장돼요.

풀이 결과

코드를 작성하고 채점하기를 눌러보세요.

    학습용으로 제공된 조건을 확인해요. 알고리즘 사용 방식·설계 의도는 해설과 함께 비교해보세요.

    어떤 기록을 찾으세요?

    키워드를 입력하면 기록을 찾아드려요.