在TypeScript中使用ModuleJ的RequireJS

时间:2014-10-31 23:36:57

标签: module requirejs typescript

我正在研究TypeScript和RequireJS。 我想简单的模块需要但缺少模块类型信息。

在这种情况下是否有智能解决方案?

requirejs(['backbone'], (Backbone) => {
    // In this function.
    // Backbone is 'any'
});

requirejs(['backbone'], (BackboneRef: Backbone) => {
    // error : Type reference cannot refer to container
    // 型参照でコンテナー 'Backbone' を参照できません。
});

1 个答案:

答案 0 :(得分:0)

为此,您需要执行以下操作:

  1. https://github.com/borisyankov/DefinitelyTyped下载backbone.d.ts,backbone.d.ts提供了typescript强类型接口,如果你使用像Visual Studio这样的IDE,你可以拥有对Backbone的所有intellisense支持< / p>

  2. (可选)在RequireJS中配置主干

  3. 在TypeScript类中,您可以像以下

  4. 一样引用Backbone

    `

    /// <amd-dependency path="backbone" />;
    /// <reference path="path/to//backbone.d.ts" />;
    
    export class YourModel extends Backbone.Model {
    
    }
    

    amd-dependency告诉编译器如何引用backbone,因此它将在JavaScript中生成正确的define语句。

    该引用为Backbone的类型化检查定义提供了一种方法。

    希望这有帮助! TypeScript消除了编写long define或者需要js语句的地狱,这在有很多依赖项的情况下可能容易出错。