我实际上正在尝试在同一项目中同时使用coffeescript和typescript。
实际上,我希望能够选择编码时喜欢的那个。
事实是,由typescript生成的javascript似乎与用coffeescript生成的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文件的类型信息。
如果添加a Controller.d.ts
,则可以在控制器文件中描述类型,以便TypeScript可以在编译期间应用该类型信息。
例如:
declare class Controller {
protected name: string;
//... more type information
}
export = Controller;
当然,您实际上要花更多的时间来编写JavaScript或Coffeescript,然后还要在另一个文件中编写类型信息-因此,您可能希望根据单元来决定要编写程序的内容。例如,如果您在Coffeescript中编写工具包,则很容易.d.ts
为它编写一个文件-而如果您在Coffeescript中到处编写文件,则将遇到一些维护方面的噩梦(要么创建大量文件.d.ts
文件或每次更改其中一个部分时管理一个合并的文件)。
定义文件针对稳定的API效果最好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句