繁体   English   中英

具有单独编译文件的Typescript继承

[英]Typescript Inheritance with separate compiled files

我正在尝试使用打字稿设置基于angularJS的代码。

使用yeoman.io使用“ generator-gulp-angular”模块创建了初始项目结构。 对于尝试使用打字稿的商业代码,我遵循以下打字稿-如何将已编译文件保留在单独的目录中? 将js文件分离到另一个目录中。

所有不同的JS文件都会自动合并为一个JS文件-这是yeoman生成的代码。

我面临的问题是在生成TS代码base.js和derived.js之后,我想使用打字稿的继承功能。 但是,当我运行gulp build(也是yeoman代码附带的)时,它试图启动phantomJS,它给了我以下错误:

未定义不是对象(评估“ b.prototype”)

在网上搜索后,我发现它与正在加载的JS文件的顺序有关,但是在我的情况下,我只有一个JS文件。

您的单个JS文件仍然是单独编译的文件的串联(大部分情况下)。 您的错误提示您输出文件中的顺序错误。

解决此问题的最快方法是使用TypeScript参考标记。 从子类内部引用基类,如下所示:

/// <reference path='./base.ts' />

不要反过来引用。 现在,编译器应遵守输出文件中的顺序。

尽管我必须警告您:看一下ES6样式的模块和模块加载器。 参考策略存在缩放问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM