打字稿,需要模块作为类

Posted

技术标签:

【中文标题】打字稿,需要模块作为类【英文标题】:Typescript, require module as class 【发布时间】:2015-05-01 08:51:19 【问题描述】:

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

着名的.js

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

    function View() 
        ...
    

    ...

    module.exports = View;
);

查看.d.ts

声明模块“著名/核心/视图”

AppView.ts

import View = require(' Famous/core/View');

类 AppView 扩展视图

export = AppView;

但它显示“找不到名称 'View'”。我想这是合乎逻辑的,因为模块不是类,所以它不起作用,但我不知道另一种方式。

【问题讨论】:

【参考方案1】:

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

【讨论】:

js 代码是我正在使用的库的一部分。这超出了我的控制范围【参考方案2】:

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

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

【讨论】:

太棒了。我希望当我在模块中声明一个类时,我需要像这样使用它: import View = require(' Famous/core/View'); var view = new View.View(); .但它没有,它完美地工作,谢谢!

以上是关于打字稿,需要模块作为类的主要内容,如果未能解决你的问题,请参考以下文章

打字稿,如何使用类作为参数的类型

茉莉花间谍对进口模块(打字稿)

如何在打字稿中导入js文件作为模块

将打字稿类转换为对象

测试套件无法运行 - 找不到模块“打字稿”

如何调试从 create-react-app 创建的应用程序使用的本地打字稿模块