如何用typescript生成正确的文件排序?

时间:2015-06-02 01:49:48

标签: typescript

考虑两个打字稿文件:

档案a.ts

module SomeModule {
  export class AClass {
  }
}

档案b.ts

module SomeModule {
  export var aValue = new AClass();
}

如果使用tsc -out out.js b.ts a.ts进行编译,则编译时没有错误,out.js包含内容:

var SomeModule;
(function (SomeModule) {
    SomeModule.aValue = new SomeModule.AClass();
})(SomeModule || (SomeModule = {}));
var SomeModule;
(function (SomeModule) {
    var AClass = (function () {
        function AClass() {
        }
        return AClass;
    })();
    SomeModule.AClass = AClass;
})(SomeModule || (SomeModule = {}));

这是一个问题,因为SomeModule.AClass在定义之前使用。现在可以通过在///<reference path="a.ts" />文件的顶部添加b.ts来解决问题。这将确保在a.ts文件之前输出b.ts

但是,如果没有这条线,项目仍会在没有警告的情况下进行编译,因此修复此问题有点容易出错。更糟糕的是,当在构建脚本中使用或使用gulp-typescript时,项目通常在没有行的情况下工作正常(由于最初的排序是正确的),但随后开始随机失败。所以我正在寻找一种方法来确保文件的顺序正确。我想到的解决方案:

  1. 根据对其他文件的隐式引用,获取typescript来确定文件顺序。
  2. 强制引用其他文件,如果丢失则抛出错误。
  3. 不幸的是我无法上班。有解决方案吗?

1 个答案:

答案 0 :(得分:3)

  

不幸的是,我无法上班。有没有这个解决方案

请勿使用--out https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md。而是使用外部模块:https://www.youtube.com/watch?v=KDrWLMUY0R0