2017-09-19 29 views
0

「進口」 的聲明我在 「ErrorMessage.ts」 中的「COM/「COM/ABC /模塊/通用」運行時錯誤 「未定義」 在打字稿

module com.abc.module.common { 

    export const ErrorMessages = { 

     ITEM_ALREADY_EXISTS: "item already exists", 

     ITEM_NOT_FOUND: "not found" 

}; 

} 
在itemMaint.ts

ABC /模塊/項目「,我有

module com.abc.module.item { 

     import ErrorMessages = com.abc.module.common.ErrorMessages; 

console.log(ErrorMessages.ITEM_NOT_FOUND); 

} 

在運行時,我得到錯誤:ITEM_NOT_FOUND未定義。

在我將///<reference path="../common/ErrorMessages.ts" />添加到「itemMaint.ts」的頂部之後,錯誤消失了。你能告訴我爲什麼我必須添加它嗎?

感謝,

鮑勃

回答

0

您之間的混合概念模塊和命名空間,術語也令人困惑(https://www.typescriptlang.org/docs/handbook/modules.html

你實際上在建造什麼,我認爲它叫做命名空間,它最後是一個包含所有導出方法和變量的變量,檢查transpilled文件以查看它。

所以對嵌套的文件只需要包括/執行「ErrorMessage.ts」之前「itemMaint.ts」 withoout使用「導入」,因爲它是因爲該變量已經創建已經存在的「舶來品」。

這是舊樣式,不應該使用,有更好的方法來聲明使用ES6語法和模塊加載器的模塊。

+0

艾伯特,非常感謝您的回覆。 –