名字'$'在当前作用域中不存在——typescript和jquery在一个模块中
The name '$' does not exist in the current scope - typescript and jquery inside a module
尝试在类或模块内使用jquery时出现错误:
/// <reference path="../jquery.d.ts" />
element: jQuery; // all is good
elementou: $; // all is fine
class buggers{
private element: jQuery; // The name jQuery does not exist in the current scope
private elementou: $; // The name $ does not exist in the current scope
}
module something {
class buggers{
private element: jQuery; // The name jQuery does not exist in the current scope
private elementou: $; // The name $ does not exist in the current scope
}
}
我不知道如何解决这个问题
您使用$
和jQuery
就好像它们是类型一样。从DefinitelyTyped中获取d.ts
,您正在寻找的类型是JQuery
或JQueryStatic
$
和jQuery
应该已经在d.ts
文件中被声明为变量:
declare var jQuery: JQueryStatic;
declare var $: JQueryStatic;
…但是,如果您觉得需要在类中再次声明它们,您可能需要尝试:
class buggers{
private element: JQuery; // JQuery object. You'll need to assign something to this before you can use it. e.g element = $('selector');
private elementou: JQueryStatic; // Reference to the $ JQuery Static object
}
我看到您这样做了,但是我忽略了这个重要的步骤。请记住在TS文件的顶部包含定义引用。
/// <reference path="../../assets/js/libs/typedefs/jquery-1.8.d.ts" />
相关文章:
- 如何定义一个模块并使用它来分离js文件
- 从一个模块暴露到另一个模块
- Node.js创建一个模块来收集内存(ram)信息
- 如何从另一个模块调用函数
- 无法调用requirejs中的另一个模块
- 打字稿“;导出的外部包打字机不是一个模块”;
- 在另一个模块中重用私有jQuery函数
- 从另一个模块访问作用域的指令
- Babel 怎么知道把一个模块当作一个模块来对待
- 我应该在每个文件中都需要一个模块还是需要它一次并将其作为参数传递
- 这是一个模块化的js设计模式吗?以及如何在此模型中的不同模块中重用值
- nodejs 将值从一个模块传递到另一个模块
- JavaScript 将一个模块“导入”到另一个模块中
- 如何将方法导出到另一个模块
- 在多入口点模块中仅获取一个<模块名称>.nocache.js文件
- 使用 on nodejs 从另一个模块捕获事件
- 来自另一个模块的 Angularjs 路由控制器
- javascript sandbox 一个模块,用于防止引用 Window
- 来自另一个模块的 Angular JS Service DI
- 访问angularjs中另一个模块中定义的工厂