我刚刚开始使用 Famo.us,希望将其作为学习 TypeScript 的机会,同时充分利用它的强大功能。所以我做了以下事情
- 使用
yoknown
按照文档创建 Famo.us 项目 - 我不确定如何包含 typescript,因此我创建了一个 typeScriptHTML 项目,复制 .csproj 文件并手动编辑它。我尝试使用 NVTS 并指定它应该从现有文件夹创建它,但我总是收到一条错误消息,指出文件路径太长。经过检查,某些模块的路径很长。甚至无法删除它们,系统也说了同样的话。最后我放弃了这个想法并使用了 typescript html 应用程序。它没有产生任何错误。
- 我添加了一个文件
app.ts
,在其中编写了一些示例代码,它按预期生成了 js 文件。 现在我想将 main.js 转换为 main.ts,但我遇到了以下问题
我。
ii.var Engine = require('known/core/Engine');
给出错误找不到符号“require”。import Engine = require('known/core/Engine')
给出错误:无法解析外部模块“known/core/Engine”。将路径更改为“../lib/known/core/Engine”会产生类似的错误,但文件名不同。三.创建了一个文件
Famous.d.ts
但我认为我没有得到它,我没有做正确的事情声明模块“著名/核心/引擎”{ 类引擎{ 公共(public)createContext():引擎 } 导出 = 引擎 }
最后,我的困惑是如何将示例代码转换为 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; }
使用此方法设法获得著名运行的一个微小定义。
关于javascript - typescript : Handling import from external libraries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23418454/