Sey*_*don 5 javascript enums object typescript destructure
我在打字稿中有一个枚举,如下所示:
export enum XMPPElementName {
state = "state",
presence = "presence",
iq = "iq",
unreadCount = "uc",
otherUserUnreadCount = "ouc",
sequenceID = "si",
lastSequenceID = "lsi",
timeStamp = "t",
body = "body",
message = "message"
}
Run Code Online (Sandbox Code Playgroud)
并想要解构它的价值,我们如何在 Typescript 中做到这一点?
const { uc, ouc, msg, lsi, si, t, body } = XMPPElementName;
Run Code Online (Sandbox Code Playgroud)
正如 @amadan提到的,我们可以Assigning to new variable names像 Mozilla 文档中所说的那样使用Destructuring_assignment,如下所示:
属性可以从对象中解包并分配给与对象属性名称不同的变量。
const { uc, ouc, msg, lsi, si, t, body } = XMPPElementName;
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)const { uc, ouc, msg, lsi, si, t, body } = XMPPElementName;
这不起作用,因为XMPPElementName没有命名的元素uc(对于其他元素也同样如此)。如果你明确命名你的密钥,它将起作用:
const {
unreadCount: uc,
otherUserUnreadCount: ouc,
message: msg,
lastSequenceID: lsi,
sequenceID: si,
timeStamp: t,
body: body,
} = XMPPElementName;
Run Code Online (Sandbox Code Playgroud)
它会起作用的。或者,您可以只使用名称等于键而不是值的变量:
const {
unreadCount,
otherUserUnreadCount,
message,
lastSequenceID,
sequenceID,
timeStamp,
body,
} = XMPPElementName;
Run Code Online (Sandbox Code Playgroud)