타입 Format<T extends string>을 구현하라.
Implement Format<T extends string> generic.
interface FormatInformation{
s:string
d:number
}
type Format<T extends string> = T extends `${infer _}%${infer K}${infer Rest}`?
K extends keyof FormatInformation?(arg:FormatInformation[K])=>Format<Rest>
:Format<Rest>
:string
우선 확장이 용이하도록 FormatInformation을 추가했다.
string에 %이 들어가면 그 다음 글자를 확인한다.
그 다음 글자가 FormatInformation의 key에 속하면 인자를 해당 문자에 맞는 타입으로 하고, 반환값을 나머지 값을 Format한 함수로 하는 것으로 구한다.
그렇지 않다면, 그냥 string을 반환한다.