Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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

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
Javascript 导致依赖项错误的类型脚本编译_Javascript_Visual Studio_Visual Studio 2013_Compiler Errors_Typescript - Fatal编程技术网

Javascript 导致依赖项错误的类型脚本编译

Javascript 导致依赖项错误的类型脚本编译,javascript,visual-studio,visual-studio-2013,compiler-errors,typescript,Javascript,Visual Studio,Visual Studio 2013,Compiler Errors,Typescript,我正在将多个TypeScript文件编译成一个JavaScript文件。例如,它们被称为: A.ts // depends on C.ts B.ts // depends on C.ts C.ts 当我检查JavaScript输出时,我发现了一个问题:TypeScript的\uu extends函数由于传递了未定义的值而失败 汇编应按以下顺序进行: C.ts // because A and B depend on this respectively. A.ts B.ts 但不幸的是,它们是

我正在将多个TypeScript文件编译成一个JavaScript文件。例如,它们被称为:

A.ts // depends on C.ts
B.ts // depends on C.ts
C.ts
当我检查JavaScript输出时,我发现了一个问题:TypeScript的
\uu extends
函数由于传递了
未定义的值而失败

汇编应按以下顺序进行:

C.ts // because A and B depend on this respectively.
A.ts
B.ts
但不幸的是,它们是根据它们的名字(字母顺序)而不是依赖顺序编译的

  • 这能解决吗
  • TypeScript团队是否意识到这个问题
注意:这是Visual Studio TypeScript编译器的问题。大概使用命令行编译器可以解决这个问题,但我想从VisualStudio编译

但不幸的是,它们是根据它们的名字(字母顺序)而不是依赖顺序编译的

TypeScript不执行自动文件排序。您应该使用一些
--module
标志集进行编译,例如
commonjs
,然后让外部模块加载器为您解析这些依赖链


更多信息:

要使编译器按正确顺序合并文件,必须在依赖于其他文件的每个文件中使用。这将使编译器能够对您的资源进行依赖关系图并对它们进行适当排序,只要您没有任何循环依赖关系

您的另一个选择是手动对编译器的输入进行排序,方法是提供所有文件的完整排序列表,或者使用_references.ts定义至少要按顺序加载的第一组文件


阅读更多关于这是如何工作的。

StEnote:从BasARAT读取。注意VisualStudio正在使用同一类型的编译器作为命令行,没有区别。考虑将一个答案标记为接受或请求更多信息以回答您的问题: