我目前正在为 Slack
构建一个机器人使用 node-slack-sdk
.在他们的示例中,他们得到以下行:
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
我重命名的对象 RTM_CLIENT_EVENTS
.const {
CLIENT_EVENTS: { RTM: RTM_CLIENT_EVENTS },
} = require('@slack/client');
现在,我想更改
require
到 import
:import {
CLIENT_EVENTS: { RTM: RTM_CLIENT_EVENTS },
} from '@slack/client';
但我收到以下错误:
ES2015 named imports do not destructure. Use another statement for destructuring after the import
知道为什么他们不解构吗?
最佳答案
import
有 strict syntax仅模仿浅层解构语法,但应该进行静态分析。 export
也是如此,它模仿对象字面量语法。
正如错误所暗示的那样,正确的方法是
import { CLIENT_EVENTS } from '@slack/client';
const { RTM: RTM_CLIENT_EVENTS } = CLIENT_EVENTS;
关于javascript - 通过导入使用解构和重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45080149/