T에서 중복되는 멤버를 포함하는지를 반환할 CheckRepeatedChars<T>를 구현하라
Implement type CheckRepeatedChars<T> which will return whether type T contains duplicated member
type Includes<T,Arr extends any[]>=
Arr extends [infer Start,...infer Rest]?
Equal<T,Start> extends true?true
:Includes<T,Rest>
:false
type CheckRepeatedTuple<T extends unknown[]> =
T extends [infer Start,...infer Rest]?
Includes<Start,Rest> extends true?true
:CheckRepeatedTuple<Rest>
:false
이전에 했던 Includes를 이용해 문제를 해결했다.
배열을 순회하며 자신보다 뒤에 있는 배열에 자신이 Includes 되어있으면, 바로 true를 반환한다.
마지막까지 순회했는데 Includes된 적이 없다면 false를 반환한다.