我目前正在使用node-slack-sdk
为Slack
构建机器人。在他们的例子中,他们得到以下一行:
var CLIENT_EVENTS = require('@slack/client').CLIENT_EVENTS;
然后使用CLIENT_EVENTS
如下:
rtm.on(CLIENT_EVENTS.RTM.AUTHENTICATED, function handleRTMAuthenticated() {
console.log('RTM client authenticated!');
});
我已更改require
以便使用解构来直接获取我重命名为CLIENT_EVENTS.RTM
的{{1}}对象。
RTM_CLIENT_EVENTS
现在,我想将const {
CLIENT_EVENTS: { RTM: RTM_CLIENT_EVENTS },
} = require('@slack/client');
更改为require
:
import
但是我收到了以下错误:
ES2015命名的进口不会破坏。导入后使用另一个语句进行解构
知道他们为什么不破坏?
答案 0 :(得分:8)
import
只有strict syntax只能模仿浅层解构语法,但应该进行静态分析。 export
也是如此,它模仿了对象文字语法。
正如错误所示,正确的方法是
import { CLIENT_EVENTS } from '@slack/client';
const { RTM: RTM_CLIENT_EVENTS } = CLIENT_EVENTS;