Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
打字稿';s";将JavaScript输出合并到文件中;选项没有';t在没有//<;的情况下推断正确的脚本顺序;参考资料>;标签_Javascript_Visual Studio_Typescript - Fatal编程技术网

打字稿';s";将JavaScript输出合并到文件中;选项没有';t在没有//<;的情况下推断正确的脚本顺序;参考资料>;标签

打字稿';s";将JavaScript输出合并到文件中;选项没有';t在没有//<;的情况下推断正确的脚本顺序;参考资料>;标签,javascript,visual-studio,typescript,Javascript,Visual Studio,Typescript,我正在开发一个使用“将JavaScript输出合并到文件”选项的TypeScript解决方案: 我经常引用另一个文件中定义的项目,例如: 在MyBaseClass.ts中: export class MyBaseClass { } export class MySubClass extends MyBaseClass { } /// <reference path="MyBaseClass.ts" /> export class MySubClass extends MyBas

我正在开发一个使用“将JavaScript输出合并到文件”选项的TypeScript解决方案:

我经常引用另一个文件中定义的项目,例如:

MyBaseClass.ts
中:

export class MyBaseClass { }
export class MySubClass extends MyBaseClass { }
/// <reference path="MyBaseClass.ts" />
export class MySubClass extends MyBaseClass { }
MySubClass.ts
中:

export class MyBaseClass { }
export class MySubClass extends MyBaseClass { }
/// <reference path="MyBaseClass.ts" />
export class MySubClass extends MyBaseClass { }
在开发过程中,Visual Studio理解
MySubClass
引用了
MyBaseClass.ts
中定义的
MyBaseClass
——解决方案成功构建,我可以使用F12导航到
MyBaseClass

但是,我在运行解决方案时遇到运行时错误,因为生成的JavaScript文件在
MyBaseClass
之前定义了
MySubClass

我可以通过在
MySubClass.ts
中添加
//
标记来修复这些运行时错误:

export class MyBaseClass { }
export class MySubClass extends MyBaseClass { }
/// <reference path="MyBaseClass.ts" />
export class MySubClass extends MyBaseClass { }
//
导出类MySubClass扩展MyBaseClass{}
为什么IDE理解
MySubClass
MyBaseClass
之间的关系,但是编译器没有在生成的输出中正确地排序这些类的定义?

我希望生成的输出正确推断类定义的顺序(首选),或者如果
//
标记不存在,则TypeScript编译器抛出错误

为什么IDE理解MySubClass和MyBaseClass之间的关系

它只知道语义关系。而不是运行时要求。如何加载模块取决于您


注意:我真的希望这个问题可以解决。Typescript intellisense在推断正确顺序方面似乎没有任何问题。当具有“合并为一个文件”选项的编译器无法解决此问题时,它会使更大的js文件提前变得不可靠。。。
对此问题的正常反应是,使用动态加载。。。这是真的。但在我的例子中,动态加载的模块已经存在许多类,这些类位于编译成单个文件的独立项目中。因此,该场景中也存在问题…

看起来这在TypeScript 1.8中是可能的:

您需要确保已选择系统或AMD模块系统:


谢谢您的回复。在我的例子中,“模块加载”在概念上不是自动生成单个JavaScript文件的同义词吗?如果是这样,那就不取决于我了。另外,我不确定您的链接是否适用于我的情况-我使用的是Visual Studio 2014的库存安装,用于我的TypeScript编译/组合,而不是node.js/grunt。在我的例子中,除非Visual Studio在引擎盖下使用
grunt ts
插件?
,否则“模块加载”在概念上不是自动生成单个JavaScript文件的同义词吗?
它可以做到这一点。但它不能做到这一点。所以这取决于你。很抱歉明白了,嗯,明白了。我正试图向我的团队的其他成员推销TypeScript,像这样的细节对我的案子没有帮助。无论如何,谢谢你的帮助。最好使用外部模块/commonjs。这就是JavaScript在规模上的发展方向。在那里,模块加载顺序由运行时管理。