我们声明如下。
type colors = "green" | "blue" | "red";
有没有一种方法可以根据条件附加到它?
如:
const shouldAppend = // some logic to return true / false.
if (shouldAppend) {
colors.append('yellow'); // invalid syntax
}
这应该将类型更新为以下内容。
colors = "green" | "blue" | "red" | "yellow";
是否可以附加到类型,我该如何做?
最佳答案
这在 typescript 中是不可能的。您不能改变类型,但是可以创建新类型:
type Colors = "green" | "blue" | "red";
type NewColors<T extends string> = Colors | T
// Colors | "yellow"
type Result = NewColors<'yellow'>
请记住, typescript 中有两个作用域:类型作用域
和值/运行时作用域
。您不得在运行时范围
中使用类型。我的意思是,在编译期间,所有类型都会从源代码中删除。
也许你应该尝试rescript ,因为它几乎可以让你做你想做的事:
type t = ..
type t += Other
type t +=
| Point(float, float)
| Line(float, float, float, float)
它称为可扩展变体
。
关于typescript - 如何附加到编译时常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70693377/