如果外部打字稿模块没有模块名称,那么如何避免命名冲突?

时间:2014-04-17 19:37:48

标签: browser module requirejs typescript

这是关于the differences between internal and external modules的问题的后续(某种)。

我想使用外部模块,因为我们将要有一个非常大的程序。问题是,如果我创建一个类rectangle.ts:

   export class Rectangle {

        public x : number;
        public y : number;
        public width : number;
        public height : number;
    }

然后使用以下方式访问它:

import rectangle = require("rectangle"); 
// or is it "import rectangle = module("rectangle");"?
var rect = new rectangle.Rectangle();

如果那里有另一个Rectangle类会怎么样?我是否需要担心命名空间冲突?或者我是安全的,因为我有需要的调用,并且正在使用.ts文件来清楚地指定类,并且全局命名空间中没有任何内容?

1 个答案:

答案 0 :(得分:1)

如果您有许多矩形模块,您可以选择在导入它们时为它们命名。该模块仅存放在您的别名中,否则不会污染您的范围。

例如:

import rectangle = require(./rectangle'); 

import differentRectangle = require('./folder/rectangle');

var rect = new rectangle.Rectangle();
var rectB = new differentRectangle.Rectangle();

另外,现在是require,而不是module