我想在ASP.Net MVC應用程序的前端打字稿中專門使用。目前這個模塊沒有模塊,依賴關係跟蹤越來越繁重。因此是時候引入RequireJS並使用Typescript對AMD的支持。typescript編譯器標記requirejs填充定義爲錯誤。如何解決它?
我已經閱讀了很多關於這個,我想我非常接近。但是,我遇到了打字機導入語句的問題,說它找不到在requireJS配置中定義的填充模塊。因此,如果typescript只是將模塊的名稱傳遞給JS代碼中的require函數,那麼一切都會很好。但它沒有,它只是拋出一個錯誤。所以問題是我該如何寫這些JS墊片的導入聲明?
下面是一個例子: app.ts
import g = require("Api/greeter");
import $ = require("jquery");
import respond = require("respond");
var greeter = new g.Greeter("#content");
greeter.start();
讓我們假設這是用於頁面的主TS和招待員是該頁面的視圖模型。但我知道我需要在頁面上使用jquery和bootstrap。我有這樣的設置爲我requireJS配置:
///
通知我有迴應,要求引導和引導,需要jQuery的。所以有app.ts需要回應應該(並且)吸引響應,引導和jQuery。
我知道我在app.ts中有一個多餘的require(「jQuery」)。這僅用於說明目的。即,該行工作正常 - TS將jQuery識別爲有效的模塊名稱並將其放入生成的編譯的JS文件中。但是,TS不承認「迴應」作爲一個模塊的名字,我得到一個編譯錯誤:
Cannot find module 'respond'.
我已經安排了這樣的我的文件:
Scripts
->Api
--> Greeter.ts
-> App
--> App.ts
-> libs
--> jQuery-3.1.1.js
--> bootstrap.js
--> respond.js
我認爲我做得很好時的jQuery工作,但我如何得到迴應或任何其他純粹的JS庫,我不得不拉入工作?根據我在TS文檔中可以看到的,require()的參數應該是JS文件的有效路徑,因爲這是編譯器如何獲取類型信息。但是,如果是這樣的話,爲什麼jQuery按照我定義的方式工作?它與respond.js沒有區別。
感謝 格雷格
我可能剛剛回答了我自己的問題。我認爲這裏重要的信息是我安裝了jQuery.d.ts和require.d.ts,但沒有得到一個.d.ts文件來作出迴應。 我想了一想,因爲我試圖推動包括淘汰賽。 VS在擊倒時給了我同樣的錯誤,就像在迴應中一樣。然後我安裝了knockout.d.ts,突然間我的錯誤消失了。 –