我刚刚开始使用Famo.us,并希望将它作为一个机会同时学习打字稿,以利用它的精彩。所以我做了以下
yo famous
创建Famo.us项目
app.ts
,在其中编写了一些示例代码,并按预期生成了js文件。现在我想将main.js翻译成main.ts并且我遇到了以下问题
我。 var Engine = require('famous/core/Engine');
错误无法找到符号'require'。
II。 import Engine = require('famous/core/Engine')
给出错误:无法解析外部模块“famous / core / Engine”。将路径更改为“../lib/famous/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);
}
});
任何帮助表示赞赏。
答案 0 :(得分:2)
事实证明这比我想象的容易得多。一种方法是声明类并将其导出为模块
declare class Engine{
...
}
export module 'famous/core/Engine'{ export = Engine; }
使用此管理获得着名跑步的微小定义。