我想在typescript中设置一个特定的类型,它只接受遵循特定模式的字符串。例如,要将其归因于一个变量,该变量必须是以下格式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 !!
这可能吗?
答案 0 :(得分:1)
对于这种情况,regex-validated string types存在一个未解决的问题(格式化字符串,在类型级别强制执行)。
然而,这对于您所建议的内容来说还不够,因为使用正则表达式来验证日期值(例如41天)是很困难的。 another (closed) issue允许以下内容:
s = df2.groupby(['store'])['value'].agg('sum')
df1['value'] = df1['store'].map(s)
df1
如果字符串无法转换为 customer store value
0 28 14 13
1 28 14 13
3 29 14 13
4 30 22 8
,则会导致编译错误。
但AFAICT目前无法实现。
答案 1 :(得分:0)
也许你可以为每种可能性生成字符串文字类型并将它们组合在一起?