首页 > 解决方案 > 模板文字类型检查模板文字

问题描述

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

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

我发现如果我正在检查类似的字符串,2002或者2002.5.12但在检查类似以下内容时失败,则此方法有效:

`${fourDigitYear}`

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

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

标签: typescript

解决方案


问题:#41732#41631

断言它为const

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

const fourDigitYear = "2000";

const foo: LogDateType = `${fourDigitYear}` as const;

推荐阅读