javascript – 在同一个项目中同时使用coffeescript和typescript

我实际上试图在同一个项目中使用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.

上一篇:javascript – 在WebStorm中编译.coffee文件


下一篇:javascript – 如何在不调用构造函数的情况下复制对象及其原型链?