2016-06-10 111 views
0

我想将属性someString添加到JQueryStatic接口,因此我可以通过$.someString访问它。将属性添加到JQueryStatic接口

index.ts,我有这样的代码:

interface JQueryStatic { 
    someString: string; 
} 

$.someString = "string"; 

$JQueryStatic型的,但是我得到以下错误:

Property 'someString' does not exist on type 'JQueryStatic'.

回答

1

你可以利用它扩展了jQuery的类型声明这样的环境类型声明:

declare interface JQueryStatic { 
    someString: string; 
} 

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

为什么这样吗?

declare位是什么使这个“环境” - 如“存在某个JQueryStatic其中有一个someString成员”。打字稿很聪明,在一个单一的JQueryStatic接口声明的jQuery的分型和“合并”在一起拿起那也有另一种JQueryStatic环境声明的其他地方(在你的情况。

enter image description here

1

$现有的类型信息是在一个声明文件(您可能已下载)。如果你想你的新接口声明合并到现有的接口,把你的声明为jquery-extensions.d.ts文件:

interface JQueryStatic { 
    someString: string; 
} 

如果必要的话,在你的代码的顶部添加一个引用路径到新的文件:

/// <reference path="../path/to/jquery-extensions.d.ts" />