我在 typescript 中有一个枚举,如下所示:
export enum XMPPElementName {
state = "state",
presence = "presence",
iq = "iq",
unreadCount = "uc",
otherUserUnreadCount = "ouc",
sequenceID = "si",
lastSequenceID = "lsi",
timeStamp = "t",
body = "body",
message = "message"
}
并且想要解构它的值(value),我们如何在 Typescript 中做到这一点?const { uc, ouc, msg, lsi, si, t, body } = XMPPElementName;
更新作为@amadan mentioned , 我们可以使用
Assigning to new variable names
如 Mozilla 文档中所说的 Destructuring_assignment ,如下所示:分配给新的变量名
属性可以从对象中解压缩并分配给名称与对象属性不同的变量。
const o = {p: 42, q: true};
const {p: foo, q: bar} = o;
console.log(foo); // 42
console.log(bar); // true
并且该方法很好地解决了这个问题,但是如果您需要访问所有项目而不需要显式定义它们,您可以在这两个提到的 tag1 中的任何一个tag2
最佳答案
const { uc, ouc, msg, lsi, si, t, body } = XMPPElementName;
这不起作用,因为
XMPPElementName
没有名为 uc
的元素(也同样适用于其他人)。如果您明确命名您的 key ,它将起作用: const {
unreadCount: uc,
otherUserUnreadCount: ouc,
message: msg,
lastSequenceID: lsi,
sequenceID: si,
timeStamp: t,
body: body,
} = XMPPElementName;
它会起作用的。或者,您可以只使用名称等于键而不是值的变量: const {
unreadCount,
otherUserUnreadCount,
message,
lastSequenceID,
sequenceID,
timeStamp,
body,
} = XMPPElementName;
关于javascript - 如何在 typescript 中解构枚举值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64548438/