【问题标题】:How to efficiently use nested modules in Typescript如何在 Typescript 中有效地使用嵌套模块
【发布时间】:2018-09-23 06:16:37
【问题描述】:

考虑以下源打字稿文件“src.ts”:

export module moduleA {
    export enum enumA {
        val1 = 0,
        val2 = 1
    };
};

export module moduleB {
    export module moduleC {
        export enum enumC {
            val3 = 0,
            val4 = 1
        };
    };
};

并将以下文件视为同一文件夹中的消费者:

import { moduleA, moduleB } from "./src";

const A: moduleA.enumA = moduleA.enumA.val1;

const B: moduleB.moduleC.enumC = moduleB.moduleC.enumC.val3;

这很好用,即使有点冗长。但现在为了尝试解决这种情况的“冗长”问题并使代码更易于阅读,我想做一些类似的事情:

import { moduleB.moduleC.enumC as enumC } from "./src";

const C: enumC = enumC.val3;

但这是一个编译器错误——“模块没有导出的成员模块 C”。

实际上是这样!

在我的情况下,我有时甚至想深入到嵌套模块的几个层次,如果我愿意在每次使用时都将它们全部取消引用的荣耀写出来,没问题。但我不知道如何在 import 语句中取消引用嵌套。这甚至可能吗?

【问题讨论】:

  • 哈,首先你制作了嵌套模块,然后你争辩说它很冗长 :) 那么为什么你想要嵌套模块呢?
  • 在服务器上一组复杂的级联命名空间中精确反映域类型,这些命名空间被序列化为用于 AJAX 调用的 JSON 对象。

标签: typescript import module export


【解决方案1】:

这可能吗?

使用 import 关键字与 move a type 不同:

import { moduleA, moduleB } from "./src";    
import enumC = moduleB.moduleC.enumC;

【讨论】:

    猜你喜欢
    • 2016-09-06
    • 2021-02-26
    • 1970-01-01
    • 2011-09-05
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 2022-08-24
    相关资源
    最近更新 更多