TypeScript错误TS 2094/2095属性'x'在'JQuery'类型的值上不存在

时间:2014-01-03 01:56:45

标签: javascript typescript

嘿我一直试图解决这个问题,但这似乎很奇怪。我知道要将.d.ts文件包含在顶部。我最近将ts从0.831升级到0.95。做了所有必要的更改并仍然出错。

更具体地说,我正在使用JQGrid,并且在Definitely Typed仓库中没有类型文件,所以我创建了一个。这是定义文件。

    /// <reference path="..\Imports\jquery-1.8.d.ts" />

interface JQuery {
    jqGrid(options?: JQGrid.JQGrid_Options): JQuery;
    fluidGrid(options: JQGrid.FluidGrid_Options): JQuery;
}

declare module JQGrid {
    export interface JQGrid_ColModel {
        ...
    }

    export interface JQGrid_Options {
        ...
    }

    interface FluidGrid_Options {
        ...
    }
}

'...'只是选项。

我收到“错误TS2094:代码行中'jq''类型的属性'jqGrid'不存在

$("#prospectsByReferrer").jqGrid(this.gridOptions);

和“错误TS2095:无法从代码

中找到符号'JQGrid'”
private gridOptions: JQGrid.JQGrid_Options;

完整的代码是

/// <reference path="..\..\Scripts\Base\ViewModelBase.ts" />
/// <reference path="..\..\Scripts\Imports\JQGrid.d.ts" />
module Biz.Views {
    export class ProspectsTab extends ViewModelBase{
        private gridOptions: JQGrid.JQGrid_Options;   <--error TS2095
        private _businessId: number;
        private _isInitialized: boolean = false;

        constructor () {
            this.gridOptions = {};
            $("#prospectsByReferrer").jqGrid(this.gridOptions);  <---error TS2094
        }

我没有得到的是为什么TS在上面声明时看不到这种类型。我做得不对劲?我已经没有包含一些打字的想法了。谢谢你的时间。

顺便说一句,我正在使用2012年的Visual Studios而且intellisense并没有给我一个红色的波浪形。它只是我的控制台输出错误。

2 个答案:

答案 0 :(得分:0)

我希望这是一个愚蠢的答案,但它总是发生在我身上..我也在使用VS和打字稿。

您是否忘记在HTML文档中包含JQGrid.js文件?

答案 1 :(得分:0)

当我的ts文件中有特殊字符时,TS编译器似乎翻了出来。我评论来自Word和Word的代码有奇怪的字符,他们自己格式化,如...-等。删除这些奇怪的&#39;字符允许编译再次发生。