我正在将多个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
但不幸的是,它们是根据其名称(按字母顺序)而不是依赖顺序编译的。
注意:这是Visual Studio TypeScript编译器问题。大概使用命令行编译器会解决这个问题,但我想从Visual Studio编译。
答案 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。