Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将typescript与非typescript js框架一起使用?_Javascript_Typescript - Fatal编程技术网

Javascript 如何将typescript与非typescript js框架一起使用?

Javascript 如何将typescript与非typescript js框架一起使用?,javascript,typescript,Javascript,Typescript,我有一个Javascript工作流框架 步骤的定义如下: var enterSSNStep = function() { // some init code }; $.extend(enterSSNStep.prototype, framework.step.prototype, { // declare functions for enterSSNStep here }); 是否有一种方法可以在Typescript中编写步骤并保留我目前使用$.extend实现的继承系统?您应该能够执

我有一个Javascript工作流框架

步骤的定义如下:

var enterSSNStep = function() {
  // some init code
};
$.extend(enterSSNStep.prototype, framework.step.prototype, {
  // declare functions for enterSSNStep here
});

是否有一种方法可以在Typescript中编写步骤并保留我目前使用$.extend实现的继承系统?

您应该能够执行以下操作:

框架d.ts entersnstep.ts
//
类entersnstep扩展了framework.step{
构造函数(arg){
//一些初始化代码
超级(arg);
}
公共剂量{
这个。doSomething();
}
}

希望有帮助;)

虽然您当然可以在TypeScript中编写这样的代码,但您可能会发现这样做会阻止编译器进行大量类型推断或类型检查,因为它无法理解您的
$。扩展基于
的原型层次结构。是否有任何特殊原因需要使用
$.extend
?例如,以下类型脚本代码:

class enterSSNStep extends framework.step {
  constructor() {
    super();
    // init code
  }

  // functions for enterSSNStep
  doSomething() {
    // do stuff
  }
}
编译为以下ES5代码:

var enterSSNStep = (function (_super) {
  __extends(enterSSNStep, _super);
  function enterSSNStep() {
    _super.call(this);
    // init code
  }
  // functions for enterSSNStep
  enterSSNStep.prototype.doSomething = function () {
    // do stuff
  };
  return enterSSNStep;
})(framework.step);

请注意,我省略了上面的
\uu extends
的定义(如果需要做一些特殊的事情,您可以提供自己的,或者使用TypeScript生成的标准接口)。

所以我只需要在*.d.ts文件中定义接口,就可以了?这太棒了。是的,如果你的框架是用好的JavaScript代码标准实现的,你应该不会有任何问题;)
class enterSSNStep extends framework.step {
  constructor() {
    super();
    // init code
  }

  // functions for enterSSNStep
  doSomething() {
    // do stuff
  }
}
var enterSSNStep = (function (_super) {
  __extends(enterSSNStep, _super);
  function enterSSNStep() {
    _super.call(this);
    // init code
  }
  // functions for enterSSNStep
  enterSSNStep.prototype.doSomething = function () {
    // do stuff
  };
  return enterSSNStep;
})(framework.step);