如何从TypeScript编译中现有的AMD js类继承到AMD模块

How to inherit from existing AMD js class in TypeScript compilng to AMD module?

本文关键字:AMD js 继承 模块 TypeScript 编译      更新时间:2023-09-26

我确实尝试了以下操作:

class Child {
    public func() {
       alert("hello");
    }
    constructor() {
        Parent.apply(this, arguments);
    }
}
Child["prototype"] = Object.create(Parent.prototype)
Child["prototype"].constructor = Child;

但是Child类的实例没有func()方法。

如何从js类继承?

一般情况

只需使用declare来声明一个现有的类。

declare class Parent { // produces no JS code
    constructor(val);
}
class Child extends Parent {
    constructor(val) {
        super(val);
    }
}

外部模块(AMD)案例

外部模块必须在定义文件.d.ts中进行描述。

文件ContainerSurface.d.ts:

declare class ContainerSurface {
  constructor(options);
}
export = ContainerSurface;

如何使用:

import ContainerSurface = require('ContainerSurface');
class Child extends ContainerSurface {
  constructor(options) {
    super(options);
  }
}