首页 > 解决方案 > 没有 `require()` 的 `import = ` 格式如何工作?

问题描述

我看到类似的东西

import foo = Bar.baz.lorem;

在某些源代码中,它没有require()调用。如果导入,这是旧形式吗?我在文档中没有看到任何示例。

标签: typescript

解决方案


这是从命名空间导入的 TypeScript 语法,而不是模块。曾经有一段时间,命名空间被称为“内部模块”,而模块则是“外部模块”。因此importfrom namespace 可用于为该命名空间中定义的某些实体引入别名:

namespace Bar {
    export namespace baz {
        export const lorem = 42;
    }
}

import foo = Bar.baz.lorem;

import被编译成简单的var语句

var foo = Bar.baz.lorem;

并且,除了它令人困惑的名称之外,它与 ES6 或 CommonJS 模块无关。


推荐阅读