typescript - String literalini küçük harflerle sınırlamak


Sadece küçük harflerle sınırlı bir string literal türü tanımlamaya çalışıyorum:

type Lower =
  | "a"
  | "b"
  | "c"
  | "d"
  | "e"
  | "f"
  | "g"
  | "h"
  | "i"
  | "j"
  | "k"
  | "l"
  | "m"
  | "n"
  | "o"
  | "p"
  | "q"
  | "r"
  | "s"
  | "t"
  | "u"
  | "v"
  | "w"
  | "x"
  | "y"
  | "z";

type LowerString<T extends string> = T extends `${Lower}${infer R}` ? `${Lower}${LowerString<R>}` : `${Lower}`;

Aşağıdaki örnekte, bunu kullanıyorum:

type Resource<ID extends LowerString<string>> = {
  id: ID;
};

Memnun olmadığım şey, bu genel ID tipini Resource'e eklemek zorunda olmam. Ayrıca, çalışmıyor...

Ben neyi yanlış yapıyorum?