我尝试使用打字稿设置基于angularJS的代码。
使用yeoman.io创建初始项目结构,使用' generator-gulp-angular'模块。 对于尝试使用typescript的业务代码,我按照TypeScript - How to keep compiled files in a separate directory?将js文件分离到另一个目录中。
所有不同的JS文件都自动合并到单个JS文件中 - 这是由yeoman生成的代码。
我面临的问题是我想在编译TS代码base.js和derived.js之后使用typescript的继承功能。 但是,当我运行gulp build(再次带有yeoman代码),试图启动phantomJS时它会给我以下错误:
undefined不是一个对象(评估' b.prototype')
在网上搜索之后,我发现它与正在加载的JS文件的序列有关,但就我而言,我只有一个JS文件。
答案 0 :(得分:0)
您的单个JS文件仍然是单独编译的文件(大多数情况下)的串联。您的错误提示输出文件中的顺序错误。
解决此问题的最快方法是使用TypeScript引用标记。从子类中引用基类,如下所示:
/// <reference path='./base.ts' />
不要反过来引用。现在编译器应该遵守输出文件中的顺序。
虽然我必须警告你:看看ES6风格的模块和模块加载器。 参考策略存在扩展问题。