【问题标题】:Typescript - RequireJS specify pathing in require.configTypescript - RequireJS 在 require.config 中指定路径
【发布时间】:2015-05-09 11:45:14
【问题描述】:

我正在现有应用程序中创建一组新网页。我们开始实现 Typescript+RequireJS。

我试图弄清楚如何在 typescript 中使用名称而不是路径进行 require 调用。所有的路径都将在 require.config 中指定

作为一个例子,这里是我的 main.ts

require.config({
    baseUrl: '/Scripts/Modules',
    paths: {
    'baseObject' : 'objects/base',
    'inheritedObject' : 'objects/some/other/paths/inheritedObject'
});

这是baseObject.ts:

 class BaseObject {
    initialize(): void {

    }

    fingerprint: string;
}
export = BaseObject;

现在我想在inheritedObject.ts 中做的事情是这样的:

import baseObj = require('baseObject');
class InheritedObject extends baseObj{
  //Object full of stuff
}

因为我在 require.config 中指定了路径,所以我不想在 require 调用中使用它。如何仅使用提供的字符串(而不是路径!)使 Typescript 工作?

【问题讨论】:

    标签: javascript requirejs typescript


    【解决方案1】:

    我试图弄清楚如何在 typescript 中使用名称而不是路径进行 require 调用

    import baseObj = require('baseObject'); 目前无法使用(免责声明:如果您不想手动创建.d.ts)。您必须使用相对路径。您的 IDE 可以提供帮助:https://github.com/TypeStrong/atom-typescript#relative-paths

    注意:这种基于基本路径的分辨率即将推出:https://github.com/Microsoft/TypeScript/issues/2338

    【讨论】:

      【解决方案2】:

      所以我想通了。这是我所做的(特别注意文件名和类名。):

      File: /Objects/baseObject.ts
      class BaseObject {
          initialize(): void {
      
          }
      
          fingerprint: string;
      }
      export = BaseObject;
      

      接下来我们有:

      File:/Objects/Objects.d.ts
      import baseObjInstance = require("baseObject");
      export module "baseObject"{
         export = baseObjInstance;
      }
      

      和实施:

      File:/Controllers/baseController.ts
      
      import baseObj = require('baseObject');
      class BaseController extends baseObj{
      }
      export = BaseController;
      

      似乎这允许注册定义,以便打字稿在您require('baseObject') 时理解定义。我相信我的 require 语句是路径,它们只是对本地目录执行此操作。这允许我在 require 配置中指定我的路径,我只需要确保匹配 require 配置中的模块导出语句大小写。即。

          require.config({
             paths: {
              "baseObject": 'Objects/baseObject'
          }
      })
      

      唯一的缺点是我必须为每个对象定义添加一个导出语句。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-30
        • 1970-01-01
        • 1970-01-01
        • 2013-05-25
        • 2013-01-10
        • 1970-01-01
        • 2016-03-13
        • 1970-01-01
        相关资源
        最近更新 更多