TypeScript编译导致依赖性错误

时间:2015-07-14 16:41:11

标签: 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的__extends函数由于传递了undefined值而失败。

编译应按以下顺序进行:

C.ts // because A and B depend on this respectively.
A.ts
B.ts

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

  • 这可以解决吗?
  • TypeScript团队是否了解此问题?

注意:这是Visual Studio TypeScript编译器问题。大概使用命令行编译器会解决这个问题,但我想从Visual Studio编译。

2 个答案:

答案 0 :(得分:1)

  

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

https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md

TypeScript不会自动执行文件排序。你应该编译一些protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d("flow", "onCreate"); setContentView(R.layout.activity_today); setGroup(); mPager = (ViewPager) findViewById(R.id.today_activity_relative); mPagerAdapter = new MyAdaptor(getSupportFragmentManager()); mPager.setAdapter(mPagerAdapter); PageChanger changer = new PageChanger(); mPager.addOnPageChangeListener(changer); mPager.setCurrentItem(position); ImageView icon = new ImageView(this); icon.setImageResource(R.drawable.ic_action_new); FloatingActionButton actionButton = new FloatingActionButton.Builder(this).setContentView(icon).setBackgroundDrawable(R.drawable.action_button_selector).build(); //this is the culprit actionButton.setOnClickListener(this); } 标志,例如--module然后让外部模块加载器为您解析这些依赖关系链。

更多:http://basarat.gitbooks.io/typescript/content/docs/project/modules.html

答案 1 :(得分:0)

要使编译器以正确的顺序合并文件,必须在每个依赖于其他文件的文件中使用reference tags。这将使编译器可以执行资源的依赖关系图并对其进行正确排序,只要您没有任何循环依赖关系。

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

详细了解其工作原理here