TypeScript-在类中引用jQuery
获取以下错误“未捕获引用错误:$未定义”。我非常理解这个错误,jQuery在我的类中是无法识别的。我不明白的是如何确保它被捡起来 以下是我到目前为止得到的信息: /附件tsTypeScript-在类中引用jQuery,jquery,visual-studio-2013,typescript1.4,nw.js,Jquery,Visual Studio 2013,Typescript1.4,Nw.js,获取以下错误“未捕获引用错误:$未定义”。我非常理解这个错误,jQuery在我的类中是无法识别的。我不明白的是如何确保它被捡起来 以下是我到目前为止得到的信息: /附件ts /// <reference path="references.ts"/> import Layout = require("./classes/Layout"); class Brooklyn { elementId: string; constructor(elementId: strin
/// <reference path="references.ts"/>
import Layout = require("./classes/Layout");
class Brooklyn {
elementId: string;
constructor(elementId: string) {
this.elementId = elementId;
}
setupLayout() {
console.log("building layout");
var layout = new Layout(this.elementId);
layout.build();
}
}
//
导入布局=要求(“./类/布局”);
布鲁克林班级{
elementId:string;
构造函数(elementId:string){
this.elementId=elementId;
}
setupLayout(){
控制台日志(“建筑布局”);
var布局=新布局(this.elementId);
layout.build();
}
}
/参考文献
/// <reference path="dfiles/jquery.d.ts"/>
/// <reference path="dfiles/jqueryui.d.ts"/>
/// <reference path="dfiles/jquery.ui.layout.d.ts"/>
/// <reference path="dfiles/node.d.ts" />
/// <reference path="classes/Layout.ts" />
//
///
///
///
///
/类/Layout.ts
/// <reference path="../dfiles/jquery.d.ts"/>
class Layout {
static layoutOuter: JQueryLayout;
elementId: string;
westSelector: string;
eastSelector: string;
constructor(elementId: string) {
this.elementId = elementId;
}
build() {
console.log("init layout");
this.westSelector = "body > .ui-layout-west"; // outer-west pane
this.eastSelector = "body > .ui-layout-east"; // outer-east pane
Layout.layoutOuter = $(this.elementId).layout(); // Error from this line
}
}
export = Layout;
//
班级布局{
静态布局器:JQueryLayout;
elementId:string;
选择符:字符串;
选择符:字符串;
构造函数(elementId:string){
this.elementId=elementId;
}
构建(){
console.log(“初始布局”);
this.westSelector=“body>.ui布局西”;//外部西窗格
this.eastSelector=“body>.ui布局东”;//外部东窗格
Layout.layoututer=$(this.elementId).Layout();//此行出错
}
}
导出=布局;
我已经将
jquery.d.ts
引用添加到Layout.ts文件中,但这也没有帮助,将jquery作为引用传递到类中也没有帮助。每个单独的类如何访问jQuery?我的问题是使用外部TypeScript模块。Nw.js使用noderequire
加载节点模块,而不是像RequireJS那样使用客户端脚本。将我的TypeScript模块内部化解决了这个问题
还了解到外部TypeScript模块与主应用程序不共享相同的上下文(现在很明显…),这就是为什么jquery没有被识别的原因 由于jQuery将是一个全局变量,也许这个关于在TypeScript中引用globals的答案会有所帮助:或者这个@jfriend00来自这些变量,没有任何效果。我想添加
declarevar$:JQueryStatic
或import$=require('jquery')
应该可以工作,但两者都不能工作。我不知道如何处理它,因为它有多个文件,我认为多个文件是问题所在。