在打字稿中导入JQuery

时间:2014-01-29 18:58:28

标签: c# visual-studio-2012 typescript

刚刚发现了关于Typescript的问题,在搞砸了它之后我决定用JQuery和OMG来测试它我无法使它工作。

说明似乎很简单:获取jquery.d.ts - &gt;将其添加到项目中 - &gt;添加/// <reference path="jquery.d.ts" />

它似乎工作得相当好,自动完成和一切。唯一的问题是代码不会编译。这是我得到的错误:0x800a1391 - JavaScript runtime error: '$' is undefined

这是我正在使用的Jquery.d.ts:https://github.com/borisyankov/DefinitelyTyped/blob/master/jquery/jquery.d.ts

这是我的代码:

/// <reference path="jquery.d.ts" />
class Greeter {
element: HTMLElement;
span: HTMLElement;
img: HTMLElement;
timerToken: number;

constructor(element: HTMLElement) {
    this.element = element;
    this.element.innerHTML += "The time is: ";
    this.span = document.createElement('span');
    this.img = document.createElement('img');
    this.img.setAttribute('src', "http://static5.businessinsider.com/image/52447d4becad0431644a8db2-1200/sean-raiger-of-sacramento-won-silver-for-the-partial-imperial-beard.jpg");
    this.img.setAttribute('style', "height:500px;width:500px;");
    this.element.appendChild(this.span);
    this.span.innerText = new Date().toUTCString();
    this.element.appendChild(this.img);
    $('img').click((event: JQueryEventObject) => { this.span.innerHTML = "aaaaaa"});
    //$(this.img).click(ActOnClick($(this.img)));
}

start() {
    this.timerToken = setInterval(() => this.span.innerHTML = new Date().toUTCString(), 500);
}

stop() {
    clearTimeout(this.timerToken);
}

}


window.onload = () => {
    var el = document.getElementById('content');
    var greeter = new Greeter(el);
    greeter.start();
};

1 个答案:

答案 0 :(得分:2)

确保您已在HTML页面中包含jQuery脚本:

<script src="/assets/jQuery.min.js"></script>

.d.ts文件仅用作jQuery的定义,而不是实际的实现。如果在编译的Typescript =&gt;之前加载jQuery JavaScript文件JavaScript文件,它应该没有问题(如果它不能立即工作,您可能需要清除浏览器缓存/刷新网页)。