我一直在看下面的语法,并试图理解有什么不同。我在Google上进行了一些搜索,但没有得到答案。
const plugin1 = require('awesome-typescript-loader');
const { plugin2 } = require('awesome-typescript-loader');
它们相同吗?有人可以解释有什么不同吗?
答案 0 :(得分:2)
对于那些懒于搜索的人,以下是对破坏性分配的简单解释:
const plugin1 = require('awesome-typescript-loader');
在上述情况下,变量 plugin1 接收模块'awesome-typescript-loader'
导出的 object 。
然后,如果要访问其属性,则必须这样调用它:
plugin1.propertyFoo
const { plugin2 } = require('awesome-typescript-loader');
在第二种情况下,发生的事情是您已经知道模块'awesome-typescript-loader'
导出的对象具有名为 plugin2 的属性,但是您 不想导入具有所有属性的整个对象,例如 first 方案。
因此,您使用这种语法{ plugin2 }
基本上意味着您创建了仅接收属性 plugin2 的局部变量 plugin2 从'awesome-typescript-loader'
默认导出的对象中获取。
这可以在 对象 和 数组 上完成。
尽管上面的解释在很多情况下是正确的,但实际上取决于您要导入的内容的导出类型。因此,它可能不适用于所有情况。请查看导出文档here,以获取更详细和准确的信息。
此外,有关正确的定义和语法,请查看Destructuring Assignment。
我希望对您有所帮助!
答案 1 :(得分:0)
多亏了Ricky Mo,我得到了我想要的一切