我在我的角度项目中有正在使用的打字稿文件(生成)。
此文件 contracts.ts 的内容如下:
export module A.B.C.Models {
export class Activity {
prop1: number;
...
}
}
我试图在同一文件夹中的另一个文件中使用这些类,但是我不知道如何正确地导入这些类,并且我还想对太长的模块名称起别名。>
import { Activity } from './contracts';
该代码未按照以下错误进行编译:
找不到模块“合同”
每次数据库模型更改时,我都无法修改生成的文件。
任何帮助表示赞赏。 预先感谢。
答案 0 :(得分:2)
您正在使用一种称为内部模块或名称空间的旧打字稿功能(export module A.B.C.Models
与export namespace A.B.C.Models
相同)。您可以像这样导入和使用该类:
import * as c from './contracts'
c.A.B.C.Models.Activity
我还是建议反对。不建议混合使用JS模块和名称空间。请参阅this discussion上的主题:
命名空间可能永远不会消失,同时,您可能不应该使用它们,因为通过使用模块可以存在更好,更标准和现代的模式。如果您认为自己需要使用命名空间的代码,则可以使用更多名称空间,而大多数情况下则不需要,因为我们现在为大型JS建议使用不同的概念组织模型(模块)。
直接导出该类,您将可以使用import
语法使用它:
//contacts.ts
export class Activity {
prop1: number;
...
}
//usage.ts
import { Activity } from './contracts';