我对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
有人可以传授一些智慧吗?
提前致谢。 添
答案 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
标记)。