2016-06-10 112 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" />