【问题标题】:Import and require used togetherimport 和 require 一起使用
【发布时间】:2017-07-04 04:34:46
【问题描述】:

最近我进入这个:

import foo = require("/foo");

这听起来很奇怪,因为我通常这样使用 require:

var foo = require("/foo");

或者像这样导入:

import foo from "/foo";

那么,这有什么意义呢?

【问题讨论】:

    标签: javascript typescript module require


    【解决方案1】:

    import {foo} = require("/foo");var foo = require("/foo"); 语句不等价。说/foo是一个文件,内容如下:

    export default { bar: 'bar' };
    export const foo = 'hello';
    

    使用第一条语句,您的变量foo 将是'hello'{}object destructuring。在另一种情况下,您将收到默认导出,这意味着 foo 将是对象 { bar: 'bar' }

    MDN 有一些很好的解释:https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/import

    【讨论】:

    • 您关注的是解构,但我相信OP想知道三种导入方法之间的区别。
    【解决方案2】:

    结帐the export = and import = require() 部分文档:

    使用export = 导入模块时,必须使用TypeScript 特定的import let = require("module") 来导入模块

    你也可以这样写:

    import foo = require("/foo");
    

    【讨论】:

    • 这很有趣,我遇到了一个强制我使用import require 的 eslint 错误,而且这个话题已经有 4 年历史了。为什么到目前为止我从来没有遇到过任何问题?
    猜你喜欢
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 2021-05-07
    • 2016-09-12
    • 2016-12-19
    • 1970-01-01
    相关资源
    最近更新 更多