如何编写对应于 javascript 的打字稿?

How to write a typescript corresponding to following javascript ?

var _ =require('lodash');
var Controller=function(){};
 Controller.prototype.index=function(req,res){
   res.ok();
 };
 Controller.extend=function(object){
      return _.extend({},Controller.prototype,object);
 };

我尝试了以下打字稿,但它添加了 extend as Controller.prototype.extend 而不是 Controller.extend()

var _ = require('lodash');
class Controller
{
    index(){
        console.log("hi");
    }
    extends(object) {

    return _.extend({}, Controller.prototype, object);
    }
}

如何更改打字稿以获得以上 javascript?

您正在定义一个实例方法,它是对象原型的一部分,您应该在其中使用静态方法(class 的一部分)。

您只需将 extends(object) 的声明更改为:

static extends(object) {
  ...
}