打字稿,要求模块为 class

Typescript, require module as class

我正在使用现有的 js 库,该库在我的打字稿代码中使用了 AMD 模块。我想使用 Javascript class 作为我的 Typescript class 的基础。这就是我想要做的:

famous.js

define('famous/core/View',['require','exports','module'],function(require, exports, module) {

    function View() {
        ...
    }

    ...

    module.exports = View;
});

View.d.ts

声明模块 "famous/core/View" {

}

AppView.ts

导入视图=要求('famous/core/View');

class AppView 扩展视图 {

}

导出 = AppView;

但是它说 "Cannot find name 'View'"。我想这是合乎逻辑的,因为模块不是 class,所以它不起作用,但我不知道另一种方式。

进一步分析,这似乎纯粹是一个需要配置的问题。它不应该与 class vs module 有任何关系。您确定您的路径正确并且您有 config.ts 需要配置文件吗?

您需要定义一个class并在View.d.ts中使用export =。例如:

declare module "famous/core/View" {
   class View {
      // TODO define members of View
   }
   export = View;
}