【问题标题】:Typescript: String literal type with custom parameter`打字稿:带有自定义参数的字符串文字类型
【发布时间】:2021-02-10 23:35:06
【问题描述】:

我正在尝试定义一个包含可变参数的字符串字面量类型。

例如:

type myStringType = 'a' | 'b' | 'c' | `d[${parameter}]`

我希望字符串 d[parameter] 接受类似于 d[foo]d[bar] 的任何内容

已编辑: 为模板文字添加了反引号,尽管我不认为这是一个模板文字,如果有其他解决方案......

【问题讨论】:

  • 您的意思是对“d”使用模板字符串吗?如果是这样,请将单引号交换为反引号。
  • 这似乎是正则表达式的工作,除非 typescript 为此类事情提供特殊语法。
  • 我不认为你可以使用联合类型来实现这一点,这里是 a similar question,不幸的是得到了“不可能”的答案。
  • 我希望有新的东西出现。经过一些额外的研究,这似乎是在typescript 4.1

标签: javascript typescript


【解决方案1】:

从 Typescript 4.1 开始,您可以使用template literal types

type parameter = "foo" | "bar"

type myStringType = 'a' | 'b' | 'c' | `d[${parameter}]`

// type myStringType = "a" | "b" | "c" | "d[foo]" | "d[bar]"

【讨论】:

  • 是的,这是正确的答案,因为在 TS4.1 出来之前没有真正的其他解决方案。
猜你喜欢
  • 2021-08-20
  • 2023-02-03
  • 2016-07-24
  • 2019-07-12
  • 1970-01-01
  • 2019-10-27
  • 2018-04-28
  • 1970-01-01
  • 2019-02-22
相关资源
最近更新 更多