运行时错误" undefined"用" import"打字稿中的陈述

时间:2017-09-19 19:41:24

标签: typescript

我有" ErrorMessage.ts"在" com / abc / module / common"

module com.abc.module.common {

     export const ErrorMessages = {

      ITEM_ALREADY_EXISTS:  "item already exists",

      ITEM_NOT_FOUND: "not found"

 };

}

在" com / abc / module / item"的itemMaint.ts中,我有

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" />添加到&#34; itemMaint.ts&#34;的顶部后,错误消失了。你能告诉我为什么要添加它吗?

谢谢,

鲍勃

2 个答案:

答案 0 :(得分:0)

我认为import的正确方法是:

import { module } from "modulePath";

您可以在此处阅读更多内容https://www.typescriptlang.org/docs/handbook/modules.html

答案 1 :(得分:0)

您正在混合模块和命名空间之间的概念,术语也令人困惑(https://www.typescriptlang.org/docs/handbook/modules.html

您实际构建的内容,我认为称为命名空间,最后是包含所有导出的方法和变量的变量,检查已翻译的文件,以查看它。

所以要在嵌套文件上“导入”你只需要在“itemMaint.ts”之前包含/执行“ErrorMessage.ts”而不使用“import”,因为它已经存在,因为已经创建了变量。

这是旧样式,不应该使用,有更好的方法来使用ES6语法和模块加载器声明模块。