の最小公倍数を取って 24 bit ずつ操作する ② 末尾は 2 文字 / 1 文字ケースに分岐して最終文字列を組み立てる never never never は TS 型プログラミングの発作みたいなものなので気にせず… ` ` 1 type EncodeToString<T extends string> 2 = T extends "" 3 ? "" 4 : T extends `${infer A}${infer B}${infer C}${infer Rest}` // ① 5 ? A extends Char ? B extends Char ? C extends Char 6 ? Join<Enc3Str<A, B, C>, EncodeToString<Rest>> 7 : never : never : never 8 : T extends `${infer A}${infer B}` // ② 9 ? A extends Char 10 ? B extends Char 11 ? Enc2Str<A, B> 12 : B extends "" 13 ? Enc1Str<A> 14 : never : never : never; 11 / 23