使用Typescript AMD导出导入的模块

奥尔莫

假设我已经将这两个有趣的Typescript库实现为AMD模块。

MathBasics.ts

module MathBasics {
    export function add(a: number, b: number) {
        return a + b;
    }
    export function substract(a: number, b: number) {
        return a - b;
    }
}
export = MathBasics

MathAdvanced.ts

module MathAdvanced {
    export function mult(a: number, b: number) {
        return a * b;
    }
    export function div(a: number, b: number) {
        return a / b;
    }
}
export = MathAdvanced

我如何将它们合并在一个MathAll.ts库中,以便客户端代码不必同时引用它们。

MathAll.ts

import MathBasics = require("MathBasics");
import MathAdvanced = require("MathAdvanced"); 

module MathAll {
    export var MathBasics: MathBasics;  
    export var MathAdvanced : MathAdvanced;
    //Error: Type reference cannot refer to container 

    export module MathBasics;
    export module MathAdvanced;
    //Error: '{' expected

    export MathBasics;
    export MathAdvanced;
    //Error: Unexpected token; 'module, class, interface, enum, import or statement' expected.

}

export = MathAll;

我现在不在乎是否发出1或3个请求。我的问题更多是关于开发便利性而不是性能。

芬顿

您可以将以下两行添加到MathAll.ts文件中:

export import MathBasics = require("MathBasics");
export import MathAdvanced = require("MathAdvanced"); 

这实际上将允许您使用MathAllpsudeo-module导入两者...

import math = require('./MathAll');

math.MathAdvanced....

但是它会对您的自动完成功能造成严重破坏,并且有一些迹象表明,将来可能不允许这样做,这将破坏您的程序-因此请小心使用此技巧。

所以,现在我已经展示了如何做到这一点,希望你能接受我的建议,你不这样做(因为你知道我的意思不是说“不这样做”只是因为我不知道怎么你能做到这)。

以一种使每个人都明智地以自己的方式导入的方式来组织模块。MathBasics在需要时以及MathAdvanced需要时导入会很难吗?

如果要隐藏实现细节,那是另一回事-但是,您肯定不会在实现时隐藏实现细节export import-因为您是通过直接导出来展示所有细节的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Typescript AMD导出导入的模块

来自分类Dev

如何将javascript AMD模块导入外部TypeScript模块?

来自分类Dev

将AMD模块导入Angular 2 TypeScript模块

来自分类Dev

使用AMD模块时,避免在Typescript中重复引用/导入外部javascript库

来自分类Dev

使用AMD模块时,避免在Typescript中重复引用/导入外部javascript库

来自分类Dev

如何从 javascript/typescript 模块文件(导入/导出)访问 Vuex 商店?

来自分类Dev

使用TypeScript导入“全局”模块

来自分类Dev

使用TypeScript导入节点模块

来自分类Dev

我如何导入TypeScript AMD模块而不将相关代码设为模块

来自分类Dev

使用ES6模块导出/导入单类方法?

来自分类Dev

TypeScript导出/导入功能

来自分类Dev

使用WebPack + TypeScript定义导入的外部模块

来自分类Dev

在引用模块的导出名称时,导入如何与节点模块一起使用?

来自分类Dev

使用TypeScript和AMD模块时,“严格使用”在哪里?

来自分类Dev

TypeScript分部定义AMD模块

来自分类Dev

在Typescript中需要AMD模块

来自分类Dev

如何使TypeScript使用AMD模块生成的代码实际执行?

来自分类Dev

导入TypeScript模块

来自分类Dev

导入TypeScript模块

来自分类Dev

为什么此Typescript模块先导入然后再导出另一个模块?

来自分类Dev

使用SystemJS的Typescript重新导出模块不起作用

来自分类Dev

将调解器模式与webpack和ES6模块一起使用导入导出

来自分类Dev

未捕获的SyntaxError:当我导出和导入类时,无法在模块外使用import语句

来自分类Dev

如何解决导入错误“找不到模块:无法解析'./components'”-使用命名导出

来自分类Dev

使用 webpack 将模块节点之类的 javascript 类导出/导入到电子中

来自分类Dev

如何导出SystemJS的TypeScript模块?

来自分类Dev

使用requirejs.config提供的别名导入TypeScript外部模块

来自分类Dev

如何导入在Typescript中使用module.exports =的CommonJS模块

来自分类Dev

在Typescript中,从Typeings导入时如何使用Javascript模块

Related 相关文章

  1. 1

    使用Typescript AMD导出导入的模块

  2. 2

    如何将javascript AMD模块导入外部TypeScript模块?

  3. 3

    将AMD模块导入Angular 2 TypeScript模块

  4. 4

    使用AMD模块时,避免在Typescript中重复引用/导入外部javascript库

  5. 5

    使用AMD模块时,避免在Typescript中重复引用/导入外部javascript库

  6. 6

    如何从 javascript/typescript 模块文件(导入/导出)访问 Vuex 商店?

  7. 7

    使用TypeScript导入“全局”模块

  8. 8

    使用TypeScript导入节点模块

  9. 9

    我如何导入TypeScript AMD模块而不将相关代码设为模块

  10. 10

    使用ES6模块导出/导入单类方法?

  11. 11

    TypeScript导出/导入功能

  12. 12

    使用WebPack + TypeScript定义导入的外部模块

  13. 13

    在引用模块的导出名称时,导入如何与节点模块一起使用?

  14. 14

    使用TypeScript和AMD模块时,“严格使用”在哪里?

  15. 15

    TypeScript分部定义AMD模块

  16. 16

    在Typescript中需要AMD模块

  17. 17

    如何使TypeScript使用AMD模块生成的代码实际执行?

  18. 18

    导入TypeScript模块

  19. 19

    导入TypeScript模块

  20. 20

    为什么此Typescript模块先导入然后再导出另一个模块?

  21. 21

    使用SystemJS的Typescript重新导出模块不起作用

  22. 22

    将调解器模式与webpack和ES6模块一起使用导入导出

  23. 23

    未捕获的SyntaxError:当我导出和导入类时,无法在模块外使用import语句

  24. 24

    如何解决导入错误“找不到模块:无法解析'./components'”-使用命名导出

  25. 25

    使用 webpack 将模块节点之类的 javascript 类导出/导入到电子中

  26. 26

    如何导出SystemJS的TypeScript模块?

  27. 27

    使用requirejs.config提供的别名导入TypeScript外部模块

  28. 28

    如何导入在Typescript中使用module.exports =的CommonJS模块

  29. 29

    在Typescript中,从Typeings导入时如何使用Javascript模块

热门标签

归档