Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript未导出带有内部模块的requirejs类_Requirejs_Typescript - Fatal编程技术网

Typescript未导出带有内部模块的requirejs类

Typescript未导出带有内部模块的requirejs类,requirejs,typescript,Requirejs,Typescript,打字稿: import classModule = require("path/to/class"); module my.namespace { export class MyClass { constructor() { var someClass = new classModule.className(); } } } 生成的JAVASCRIPT: define(["require", "exports", "path/to/class"], fu

打字稿:

import classModule = require("path/to/class");

module my.namespace {
  export class MyClass {
    constructor() {
       var someClass = new classModule.className();
    }
  }
}
生成的JAVASCRIPT:

define(["require", "exports", "path/to/class"], function (require, exports, classModule) {
    var my;
    (function (my) {
        var namespace;
        (function (namespace) {
            var MyClass = (function () {

                function MyClass () {

                    var someClass = classModule.className();

                }
                return MyClass ;
            })();
            namespace.MyClass = MyClass ;
        })(namespace = my.namespace || (my.namespace = {}));
    })(my || (my = {}));
});
因此,它不导出“MyClass”,因此导入它的模块无法使用它

如果我删除了typescript

module my.namespace
它是:

. . .
return MyClass;

})();
exports.MyClass= MyClass;
如何让它导出用内部模块包装的MyClass

我可以手工出口,但我认为这应该行得通。
我知道内部模块名称空间不是最好的,但我有大量代码包装在Typescript模块中。我正在使用VisualStudio,并为该项目设置了AMD标志。打字稿1.4。我正在加载带有require([“MyClass”])调用的“MyClass”。

如果要导出包含该类的模块(及其内容),则需要导出包含该类的模块


实际上,没有理由在外部模块中使用顶级“名称空间”模块。参见

中的“不必要的名称空间”,我尝试了:export my.namespace{export MyClass{--并且它没有生成导出它确实导出了对象
my.namespace.MyClass
是的。我错过了这个-谢谢。有没有建议不要使用requirejs的typescript模块模式?在这种情况下你必须使用脚本标记吗?只需从顶级对象中删除
export
关键字,并包含所有输出将.js与脚本标记放在一起。在本例中,您可以在命令行上使用
--out
,将文件合并到一个.js文件中(注意排序问题)。