2016-04-17 195 views
0

我有聲明文件module.d.ts打字稿模塊加載錯誤

declare module "ArrayItem" {import out = require("models/ArrayItem"); export = out;} 

現在我有一個文件Array.ts和第一行是

/// <reference path="../module.d.ts" /> 
import array = require("ArrayItem"). 

但是,這是行不通的。我得到腳本錯誤。

如果我使用,

/// <reference path="../module.d.ts" /> 
import array = require("models/ArrayItem") 

然後,我沒有得到任何錯誤。

模塊加載在這裏有什麼問題?

如果我有一個module.d.ts,那麼應該從require(「arrayitem」)加載arrayitem模塊。

對不起?或者我應該總是ArrayItem的正確路徑?

我很困惑。有人可以在這裏幫忙嗎?

回答

1

如果你是ArrayItem.ts的擁有者,那麼你不需要module.d.ts。只需直接參考模塊。

您正在獲取運行時錯誤,但不是編譯器錯誤,因爲您的運行時正試圖爲當前路徑加載ArrayItem.js,而不是從models/ArrayItem加載。在你的module.d.ts文件中沒有任何意義,因爲它只是打字稿模塊中的定義(而不是代碼)的包裝,你已經可以直接引用模塊了。

因此,不要使用///並使用require(「models/ArrayItem」)導入。

+0

ok..so我應該總是說import array = require(「models/ArrayItem」),即使我有module.d.ts文件?你能否詳細說明我應該在這裏做什麼? – user2325247

+0

您有一個參考其他打字稿模塊的打字稿模塊,因此不需要使用module.d.ts。如果你在打字稿中使用JavaScript庫,你只會這樣做。 –

+0

明白了......我必須做出一些改變。謝謝, – user2325247