Javascript 在同一项目上同时使用coffeescript和typescript

Javascript 在同一项目上同时使用coffeescript和typescript,javascript,coffeescript,typescript,Javascript,Coffeescript,Typescript,实际上,我正试图在同一个项目中同时使用coffeescript和typescript 事实上,我希望能够在编码时选择我更喜欢的一种 事实上,typescript生成的javascript与coffeescript生成的javascript似乎没有达到预期的效果 说明: 我用coffeescript编写了一个控制器类,当我在coffeescript文件中扩展它时,它可以完美地工作,如下所示: Controller = require('../node_modules/Controller/Cont

实际上,我正试图在同一个项目中同时使用coffeescript和typescript

事实上,我希望能够在编码时选择我更喜欢的一种

事实上,typescript生成的javascript与coffeescript生成的javascript似乎没有达到预期的效果

说明:

我用coffeescript编写了一个控制器类,当我在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);
    }
}
但当我尝试将其与typescript一起使用时,如下所示:

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下工作得最好