0

我有一个非常简单的 d.ts 映射,如下所示:

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)中得知,这应该可以工作。

任何帮助将不胜感激。:)

更新

我可以通过用小写的“C”声明 var 来完成这项工作:

declare var cordova:CordovaClass;

然后这样称呼它:

cordova.exec(success, error, tag, command, params);

这是因为这是 cordova 用来引用自身的变量,就像 jQuery d.ts 所做的那样。

*exec 不是您可以使用 Cordova 进行的真正调用,但这不是我遇到的问题。

4

1 回答 1

2

TypeScript 定义文件只是告诉编译器应该已经存在什么。在运行时,您需要通过主机存在的任何脚本加载机制(例如,在浏览器中、<script>标签中)来呈现 Cordova 实现。

于 2013-04-09T18:30:20.560 回答