跳到主要内容

实现一个 type 类型,约束特殊时间格式的字符串

例子:

实现一个 type 类型,约束特殊时间格式的字符串,规则如下:
FormatDate<"DD-MM-YY">
允许的字符串为:
const date: FormatDate<"DD-MM-YY"> = "12-12-2024" | "12-02-2014";
不允许的字符串为:
const date: FormatDate<"DD-MM-YY"> = "121-12-2024" | "12-202-20114";
时间格式支持多种分隔符: "-" | "." | "/"
type Operation =  "-" | "." | "/"
type Day = `${number}${number}`
type Month = `${number}${number}`
type Year = `${number}${number}${number}${number}`

type FormatDate<T extends string> = T extends "DD-MM-YYYY" ?
`${Day}${Operation}${Month}${Operation}${Year}` : never