【问题标题】:Typescript: Import from nested modules打字稿:从嵌套模块导入
【发布时间】:2021-07-12 07:00:52
【问题描述】:

我正在运行一个 react 应用程序。由于以下错误消息,下面的代码不起作用:

@babel/plugin-transform-typescript 不支持import = 请考虑在 Typescript 的 --allowSyntheticDefaultImports 选项旁边使用 import <moduleName> from '<moduleName>';

apiTypes.d.ts

declare module ModuleA {
    declare module ModuleB {
        export interface ModuleABInterface {
        }
    }
}

token.ts

import ModuleABInterface = ModuleA.ModuleB.ModuleABInterface
let test: ModuleABInterface

从嵌套模块导入的正确解决方案是什么?

【问题讨论】:

  • 最简单的解决方案:不要使用嵌套模块?
  • 所以不能嵌套模块?您的回答根本没有帮助..
  • 顺便说一句,您似乎只想要一个类型别名,而不是导入。为此使用type ModuleABInterface = ModuleA.ModuleB.ModuleABInterface; let test: ModuleABInterface
  • 可以用,只是babel无法解析。问题在于您的构建工具,而不是源代码。使用官方的 typescript 编译器就可以解决问题。

标签: javascript typescript es6-modules


【解决方案1】:

嵌套 ES6 模块是不可能的。 TypeScript namespaces(最初称为“模块”)可以嵌套,but should be avoided。是的,从它们导入是不可能的——你只能使用普通的 ES6 import 声明(不是已弃用的 import = 语法)导入命名空间对象本身,然后访问它们的属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 2017-09-23
    • 2022-01-14
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    相关资源
    最近更新 更多