打字稿科尔多瓦接口抛出参考错误“的ReferenceError:科尔多瓦没有定义”
问题描述:
我有一个非常简单d.ts映射是这样的:打字稿科尔多瓦接口抛出参考错误“的ReferenceError:科尔多瓦没有定义”
interface CordovaClass {
exec(success:Function, error:Function, ...rest:any[]);
}
declare var Cordova:CordovaClass;
我随后参考在NativeCordova.ts:
/// <reference path="../lib/cordova.d.ts" />
然而,当我打电话下面在同一个文件:
Cordova.exec(success, error, tag, command, params);
浏览器引发此错误:
Uncaught ReferenceError: Cordova is not defined
相当新的映射,但从我可以告诉从其他映射(如jquery.d.ts)这应该是工作。
任何帮助将不胜感激。 :)
更新
我能够通过声明VAR用小写的 'C' 得到这个工作:
declare var cordova:CordovaClass;
,然后调用它的方式:
cordova.exec(success, error, tag, command, params);
这是因为这是cordova用来引用自己的变量,很像jQuery d.ts所做的。
* exec不是一个真正的电话,你可以用科尔多瓦,但这不是我遇到的问题。
答
TypeScript定义文件只是告诉编译器应该已经存在的内容。在运行时,您需要通过主机的任何脚本加载机制(例如,在浏览器中,<script>
标记)来呈现Cordova实现。
+1
啊,我明白你的意思了。我确实包括了脚本,但是这种理解让我意识到,由于我宣称科尔多瓦用作自己的参考的变量,因此不应该将cordova大写。 – 2013-04-09 20:08:41
值得一提的是你可以在这里获得phonegap类型定义:https://github.com/borisyankov/DefinitelyTyped/blob/master/phonegap/phonegap.d.ts – basarat 2013-04-10 00:57:41