是否可以将多个内部模块组合到一个外部模块?

Is it possible to combine multiple internal modules to one external?

本文关键字:模块 一个 外部 组合 内部 是否      更新时间:2023-09-26

我想实现的是这样的布局:

// Shape.ts
module Shape {
    export interface Shape {
        area(): number;        
    }
}
// Rectangle.ts
module Shape {
    export class Rectangle implements Shape {
        constructor(private x:number, private y: number) {}
        area(): number {
            return this.x * this.y;
        }
    }
}
// Square.ts
module Shape {
    export class Square implements Shape  {
        constructor(private x:number) {}
        area(): number {
            return Math.pow(this.x, 2);
        }
    }
}
// geometry.ts
/// <reference path="Shape.ts" />
/// <reference path="Rectangle.ts" />
/// <reference path="Square.ts" />
export = Shape.Rectangle;
export = Shape.Square;

,我有大多数代码在常规的内部模块。而且,为了构建Node.js模块,我有一个外部模块,它导出所有的东西,这是为了供Node模块用户使用。

但是目前,当我调用tsc -m commonjs --outFile geometrylib.js geometry.ts时,我得到一个没有任何module.exports语句的geometrylib.js,因为它应该在CommonJS构建中。

当前版本的TypeScript有可能吗?

p
tsc --version给我message TS6029: Version 1.6.0-beta

是否可以将多个内部模块组合到一个外部模块?

代替

export = Shape.Rectangle;
export = Shape.Square;

你可以这样做:

export = Shape;

然而我建议你不要混合内部和外部模块…就像你的消费者尊重npm,接受commonjs

@)