문자열 리터럴 유형의 Typescript 개수 하위 문자열

문자열 리터럴 유형의 특정 문자를 어떻게 셀 수 있는지 궁금한 적이 있습니까?

방법은 다음과 같습니다.

type GetCountOfSubString<
    String_ extends string,
    SubString extends string,
    Count extends unknown[] = []
> = String_ extends `${string}${SubString}${infer Tail}`
    ? GetCountOfSubString<Tail, SubString, [1, ...Count]>
    : Count['length']


type NumberOfA = GetCountOfSubString<"a--a--aa--a","a"> // 5


playground

제한: TS 재귀의 최대 깊이가 1000이기 때문에 카운트는 999를 초과할 수 없습니다.

좋은 웹페이지 즐겨찾기