0

我刚开始使用 Famo.us,并想利用它作为学习打字稿的机会,同时利用它的魅力。所以我做了以下

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

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

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

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

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

 /*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);
    }
});

任何帮助表示赞赏。

4

1 回答 1

2

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

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

设法使用它来获得著名跑步的微小定义。

于 2014-05-17T08:35:05.213 回答