2

我想向接口添加一个属性someStringJQueryStatic以便我可以使用$.someString.

index.ts,我有这个代码:

interface JQueryStatic {
    someString: string;
}

$.someString = "string";

$是 type JQueryStatic,但是我收到以下错误:

类型“JQueryStatic”上不存在属性“someString”。

4

2 回答 2

4

您可以使用扩展 jQuery 类型声明的环境类型声明,如下所示:

declare interface JQueryStatic {
     someString: string;
}

将它.d.ts放在代码中某处的文件中,并确保它包含(或不排除)在您的tsconfig.json.

为什么这行得通?

正是这declare一点使这个“环境”成为“环境”——就像“在某个地方存在一个JQueryStatic有一个someString成员的地方”一样。TypeScript 很聪明,并且发现其他地方还有另一个JQueryStatic环境声明(在您的情况下,jQuery 类型化并将它们“合并”在一个JQueryStatic接口声明中。

在此处输入图像描述

于 2016-06-10T15:14:18.100 回答
1

的现有类型信息$位于声明文件(您可能已下载)中。如果您想将新接口声明合并到现有接口中,请将您的声明放入jquery-extensions.d.ts文件中:

interface JQueryStatic {
    someString: string;
}

如有必要,请在代码顶部添加此新文件的引用路径:

/// <reference path="../path/to/jquery-extensions.d.ts" />
于 2016-06-10T15:09:51.947 回答