标题是不言自明的。我想要一个类型,可以匹配字符串开始的前缀func
和包围由任意数量的参数之间的两个括号。
func(1, 2, 3, 4, 5)
func(1, 2, 3)
func(1, 2, 3, 4, 5, 6, 7)
目前我写了下面的类型,这不是100%我想要的,因为它可以在括号之间包含任何字符串:
type MyType = `func(${string})`
标题是不言自明的。我想要一个类型,可以匹配字符串开始的前缀func
和包围由任意数量的参数之间的两个括号。
func(1, 2, 3, 4, 5)
func(1, 2, 3)
func(1, 2, 3, 4, 5, 6, 7)
目前我写了下面的类型,这不是100%我想要的,因为它可以在括号之间包含任何字符串:
type MyType = `func(${string})`
1条答案
按热度按时间zmeyuzjn1#
请注意,您不能在运行时使用TypeScript类型来验证对象值(为此,您需要正则表达式或zod或joi等验证库)。您只能在编译时验证字符串文字。
话虽如此,回答你的问题,有一个类型,如你所解释的工作:
如果TypeScript支持递归模板文字类型,则很简单:
不幸的是,这给出了
Params
类型的错误:Type alias 'Params' circularly references itself.ts(2456)
因此,我们必须手动列出类型,并设定上限:
您可以不需要用实用程序类型手动列出它们,但由于不支持递归模板文字类型,因此仍然存在上限。