使用TypeScript的Raphael - 呼叫新'中使用的签名表达必须有一个' void'返回类型

时间:2014-07-24 01:37:25

标签: raphael typescript

我对JavaScript和TypeScript都有点新意,所以这可能是我的一个简单错误。我正在使用Raphael 2.1.2和https://github.com/borisyankov/DefinitelyTyped 2.1版的TypeScript定义文件。我有两行简单的代码:

    var canvas: HTMLElement = document.getElementById("SVGCanvas");
    var x = new Raphael(canvas, 800, 800);

与我见过的示例代码一致,但是typescript无法使用以下错误编译它:

    Call signatures used in a 'new' expression must have a 'void' return type

有人可以传授一些智慧吗?

提前致谢。 添

1 个答案:

答案 0 :(得分:2)

我承认,这个错误有点误导。但修复不是使用new

var canvas: HTMLElement = document.getElementById("SVGCanvas");
var x = Raphael(canvas, 800, 800);

如果对如何使用TypeScript定义有疑问,请始终查看测试:https://github.com/borisyankov/DefinitelyTyped/blob/master/raphael/raphael-tests.ts#L3因为它们可以保证编译正常(这就是他们测试)。

<强>更新 验证了TS定义与JS lib:http://raphaeljs.com/一致。 请勿使用new

<强> UPDATE2:

对于:

  

但我收到运行时错误 - 'Raphael'未定义

确保在编译的TypeScript(生成的JavaScript)之前包含raphael.js(例如,使用script标记)