在TypeScript中混合普通模块和外部模块

时间:2014-07-30 15:47:22

标签: typescript phpstorm

在TypeScript中混合使用两种类型的模块有什么问题吗?我的意思是跟随:

/// <reference path="./FirstModule.ts" />

import SecondModule = require("./SecondModule");

class MainClass extends SecondModule
{
    private fm : FirstModule;

    constructor() {
        this.fm = new FirstModule();
    }
}
export = MainClass;

我的TypeScript代码遇到了复杂的问题,我不确定这是否是根。我的问题是,虽然编译器没有发出错误,但在运行时无法识别FirstModule。我正在使用 PhpStorm ,我可以看到它尝试编译我的代码而没有任何--out选项。这是命令:

/usr/local/bin/tsc --sourcemap MainClass.ts --module amd

这里需要--out选项吗?

1 个答案:

答案 0 :(得分:3)

理想情况下,您不希望混合使用内部和外部模块。

最简单的解决方案是始终使用外部模块(因此从module FirstModule文件中删除FirstModule.ts并将其导入,就像第二个模块一样。)

import FirstModule = require("./FirstModule.ts");

import SecondModule = require("./SecondModule");

class MainClass extends SecondModule
{
    private fm : FirstModule;

    constructor() {
        this.fm = new FirstModule();
    }
}
export = MainClass;