【发布时间】:2021-12-09 23:59:26
【问题描述】:
我有
type typeA = "A1" | "A2" | "A3";
那我要使用类型值方向
typeA.A1; // "A1"
有可能吗?
【问题讨论】:
-
我很困惑。你不能使用
enum,还是我错过了什么? -
好吧,这可能行得通,因为已经有一个类型,并且它由第 3 方维护。
-
你不需要
typeA.A1。只需使用"A1"。这是一个字符串字面量类型,不需要对值使用间接——使用字面量是类型安全的。 -
@IngoBürk 是正确的。联合类型(例如
typeA)的全部意义在于限制您可以分配给具有该类型的变量的值。typeA不代表命名空间。事实上,由于type erasure,typeA甚至不会存在于生成的 Javascript 中,因此在运行时也不存在!但我会写一个替代方案以防你可以说服第三方采用它。