[英]Typescript advanced type: string following a predefined pattern
我想在打字稿中設置特定的類型,該類型僅接受遵循特定模式的字符串。 例如,將其歸因於一個變量,該變量必須是以下格式的日期YYYY / MM / DD。
例子:
type Date = "YYYY/MM/DD"; // obviously this type is dum and doesn't do the job, but you get the idea
let date1:Date = "2019/12/31" // OK
let date2:Date = "01/12/2000" // ERROR
let date3:Date = "someString" // ERROR
let date4:Date = "3190/01/31" // OK
let date5:Date = 1528917532543 // ERROR
let date6:Date = "20/12/31" // ERROR
let date7:Date = "2018/06/41" // ERROR !!
這可能嗎?
對於這種情況(格式字符串,在類型級別強制執行), 正則表達式驗證的字符串類型存在未解決的問題。
但是,這還不足以滿足您的建議,因為使用正則表達式很難驗證日期值(例如,一天為41)。 還有另一個(封閉的)問題 ,它可能導致以下問題:
type FormattedDate (s: string) => new Date(s);
如果無法將字符串轉換為Date
,則會導致編譯器錯誤。
但是AFAICT目前尚不可能。
也許您可以為每種可能性生成字符串文字類型並將所有這些類型組合在一起?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.