你的問題不清楚;然而,從您的評論「想象如果我使用沒有.ts文件的插件」看起來像你問:我怎樣才能使用一個jQuery插件,還沒有一個.d.ts
定義文件。
jQuery在TypeScript中定義的原因是因爲正在使用jQuery定義文件。該文件告訴TypeScript $()
是一個函數,它返回一個已知jQuery函數的對象。
如果您創建了一個新的插件,您應該創建一個.d.ts
文件,讓您的插件的用戶通過TypeScript引用您的代碼。
如果您使用的插件沒有TypeScript定義文件,您必須自己創建一個定義,或者您可以將您的jQuery對象轉換爲any
。第一個選項更好,因爲IDE和編譯器仍然可以幫助你。假設你創建一個新的插件,用「Hello World」替換對象的內容;
(function($) {
$.fn.helloWorld = function() {
this.html('Hello World');
return this;
}
})(jQuery);
// Either the plugin author provides the definition, or you write them yourself
interface JQuery {
helloWorld();
}
TypeScript允許您定義一個接口多次,將它與以前的定義相結合,所以上面的定義不會覆蓋現有的定義。
見Using jQuery plugin in TypeScript
而且here's an example顯示,您可以添加行爲,以現有的接口
Definitely Typed是資源維持定義文件,使您可以使用常規的JavaScript庫,從您的打字稿,它有許多定義流行的jQuery插件
很肯定TS只是編譯JS。嘗試引用編譯的JS文件的路徑而不是TS文件。我可能是錯的,特別是從星期五開始。 – Devilscomrade
@Devilscomrade當我這樣做時,我看到:無法解析引用文件: – soamazing
真的很困惑,如果'jquery.d.ts'和'bootstrap-switch.d.ts'存在於同一目錄中,則不應該發生此錯誤除非找不到定義文件。如果你有像'$(「[name ='actived_ideskuvalido']」)。html('hello')''的代碼,你會得到一個錯誤嗎? –