TypeScript:处理从外部库导入



我刚开始使用Famo.us,并想把它作为一个学习打字脚本的机会,同时利用它的强大功能。所以我做了以下

  1. 根据文档使用yo famous创建Famo.us项目
  2. 我不知道如何包含typescript,所以我创建了一个typeScriptHTML项目,复制.csproj文件并手动编辑它。我尝试使用NVTS,并指定它应该从现有文件夹创建它,但我总是收到一个错误,说文件路径太长。经过检查,一些模块的路径非常长。甚至无法删除它们,系统也在说同样的话。最后,我放弃了这个想法,使用了typescript html应用程序。它没有产生任何错误
  3. 我添加了一个文件app.ts,在其中写了一些示例代码,它按预期生成了js文件
  4. 现在我想把main.js翻译成main.ts,但我遇到了以下问题

    i。var Engine = require('famous/core/Engine');给出错误,找不到符号"require"。

    ii。import Engine = require('famous/core/Engine')给出错误:无法解析外部模块"nament/core/Engine"。将路径更改为"../lib/nament/core/Engine"会产生类似的错误,但文件名不同。

    iii。创建了一个文件Famous.d.ts,但我认为我没有得到它——我做得不对 declare module "famous/core/Engine" { class Engine{ public createContext(): Engine } export = Engine }

最后,我的困惑是如何将示例代码翻译成typescript:

 /*globals define*/
define(function(require, exports, module) {
    'use strict';
    ///first
    var Engine = require('famous/core/Engine');
    var DeviceView = require('./DeviceView');
    var mainContext = Engine.createContext();
    var device;
    createDevice();
    function createDevice() {
        var deviceOptions = {
            type: 'iphone',
            height: window.innerHeight - 100
        };
        device = new DeviceView(deviceOptions);
        mainContext.add(device);
    }
});

感谢任何协助。

这比我想象的要容易得多。一种方法是声明类并将其导出为模块

declare class Engine{
    ...
}
export module 'famous/core/Engine'{ export = Engine; }

使用这个,设法得到一个著名跑步的小定义。

最新更新