作者:Professional TypeScript Training by Matt Pocock | Total TypeScript
模板字符串高级使用
强制字符串类型模式
模板文字可以将其他类型插入到字符串类型中,从而强制它们匹配特定的模式。
这里我们将创建一个PngFile
类型,表示以“.png”结尾的字符串:
现在,当我们输入一个新变量作为PngFile
时,它必须以“.png”结尾:
当字符串与PngFile
类型中定义的模式不匹配时,TypeScript 将显示错误:
该技术的另一个应用是确保字符串以某个前缀开头,比如要求路由以/
开头:
您还可以指定字符串必须包含某个子字符串,例如要求字符串包含?
才能被视为查询字符串:
巧妙使用字符串模板可以帮助减少重复!
将模板文字类型与联合类型组合
模板文字字符串的常见模式是将其与联合类型一起使用。通过将联合传递给模板文字类型,您可以生成一个表示联合所有可能组合的类型。
例如,假设我们有一组颜色,每种颜色可能的色调从100
到900
:
如果我们想要所有可能的颜色和色调的组合,我们可以使用模板文字类型来生成新类型:
现在, ColorPalette
将表示颜色和色调的所有可能组合:
一共有 27 种可能的组合——三种颜色乘以九种色调。