2015-05-29 104 views
0

我是新來的打字稿。我試圖與jquery-easyui庫在DefintelyTyped回購中沒有d.ts定義文件。我沒有時間(或技能)爲這個庫編寫d.ts文件。我將如何去在打字稿文件中使用它?Typescript:如何引用jquery-easyui庫?

在test.ts文件,我試着做一:

/// <amd-dependency path="libs/easyui/jquery.easyui.min.js"> 
function newUser(){ 
    $('#dlg').dialog('open').dialog('setTitle','New User'); 
    ... etc. 

但webstorm上的 「$」 符號爲 「未解決方法或函數$()」 報告錯誤。試圖用參考替換amd-dependency ..但仍然沒有工作。庫路徑是正確的。如果我把它放在.js文件中,這個代碼工作正常。

+0

你可以爲你需要的方法寫一個接口。另外,$是jquery.d.ts的一部分 –

回答

0

第1步是包含jQuery的聲明文件。這至少會讓你爲vanilla jQuery輸入信息。把下面爲您JS文件的頂部正在使用jQuery

/// <reference path='jquery.d.ts' /> 

接下來,您將要創建一個文件jquery.easyui.d.ts和補充一點:上述

interface JQuery { 
    dialog: any; 
} 

代碼意味着JQuery接口(最初在jquery.d.ts中定義)具有一個名爲dialog的成員,並且它可以是任何類型的(在這種情況下,它是一個函數)。由於您使用的是any,因此您沒有獲得任何類型的幫助,但至少現在可以編譯。我不知道easyui爲jQuery添加了什麼,但是您需要將所有新方法添加到此接口。

最後,在jquery.easyui.d.ts的第一個下面添加另一個<reference>註釋。任何時候編譯器都會抱怨沒有從easyui定義的東西,將它添加到您的jquery.easyui.d.ts文件中。

一旦你對語法更加熟練,你可以充實你的jquery.easyui.d.ts文件中的類型,並將它們提供給明確的項目!

+0

謝謝......它的工作!就像你說的...沒有得到intellisense代碼完成,但至少我可以像普通的javascript那樣使用該庫。 –

相關問題