我实际上试图在同一个项目中使用coffeescript和typescript.
事实上,我希望能够在编码时选择我喜欢哪一个.
事实是,由于使用coffeescript生成的javascript,typescript生成的javascript似乎没有按预期工作
说明:
我用coffeescript编写了一个Controller类,当我在coffeescript文件中扩展它时,它运行得很好:
Controller = require('../node_modules/Controller/Controller')
class HelloController extends Controller
indexAction: (name) =>
console.log 'hey '+ name
module.exports = HelloController
但是当我尝试将它与下面的打字稿一起使用时:
import Controller = require('../node_modules/Controller/Controller');
export class HelloController extends Controller {
constructor() {
super()
}
indexAction(name:String) {
console.log('hey '+name);
}
}
我收到一个错误,告诉我控制器无法在预期的位置找到(.js文件生成良好)
你能帮助我吗 ?
解决方法:
如果要执行此操作,则需要提供有关Coffeescript生成的JavaScript文件的类型信息.
如果添加Controller.d.ts,则可以在控制器文件中描述类型,以便TypeScript可以在编译期间应用该类型信息.
例如:
declare class Controller {
protected name: string;
//... more type information
}
export = Controller;
当然,你基本上是在编写JavaScript或Coffeescript,然后在另一个文件中写入类型信息,所以你可能希望根据每个单元做出关于你要编写程序的内容的决定.例如,如果你在Coffeescript中编写一个工具包,很容易为它编写一个.d.ts文件 – 而如果你在Coffeescript里写一个文件,你将会有一些维护噩梦(每次更改其中一个部分时,要么创建大量的.d.ts文件,要么管理一个合并的文件).
定义文件最适合稳定的API.