【问题标题】:Template Literal Type checking Template Literals模板文字类型检查模板文字
【发布时间】:2021-03-04 04:52:51
【问题描述】:

我很好奇 typescript 4.1 中新的 Template Literal 支持是否可以实现以下功能:

export type LogDateType = `${number}.${number}.${number}` | `${number}.${number}` | `${number}`

我发现,如果我输入检查 20022002.5.12 之类的字符串,但在检查类似以下内容时失败:

`${fourDigitYear}`

出现错误Type 'string' is not assignable to type 'LogDateType'.

有没有办法在检查纯字符串之外进行这项工作?

【问题讨论】:

    标签: typescript


    【解决方案1】:

    问题:#41732#41631

    声明为const

    export type LogDateType = `${number}.${number}.${number}` | `${number}.${number}` | `${number}`
    
    const fourDigitYear = "2000";
    
    const foo: LogDateType = `${fourDigitYear}` as const;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-17
      • 2017-10-18
      • 1970-01-01
      • 2021-08-28
      • 2013-10-13
      • 2020-02-14
      • 2019-12-13
      • 1970-01-01
      相关资源
      最近更新 更多