type Digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'; type ExpiryDate = NumberString | '20380119'; type NumberString = T extends Digit ? V : T extends `${Digit}${infer R}` ? NumberString : `0`; export type { Digit as D, ExpiryDate as E, NumberString as N };