Typescript 如何导入从模块导出的类?

Typescript 如何导入从模块导出的类?,typescript,Typescript,我在我的angular项目中使用了typescript文件(生成的) 此文件contracts.ts的内容如下: export module A.B.C.Models { export class Activity { prop1: number; ... } } 我试图在同一文件夹中的另一个文件中使用这些类,但我不知道如何正确导入这些类,而且我还想为模块名添加别名,因为模块名太长了 import { Activity } from './contracts'; 代码

我在我的angular项目中使用了typescript文件(生成的)

此文件contracts.ts的内容如下:

export module A.B.C.Models {
  export class Activity {
    prop1: number;
    ...
  }
}
我试图在同一文件夹中的另一个文件中使用这些类,但我不知道如何正确导入这些类,而且我还想为模块名添加别名,因为模块名太长了

import { Activity } from './contracts';
代码未编译,出现以下错误:

找不到模块“合同”

我无法修改生成的文件,因为它是在每次数据库模型更改时生成的

谢谢你的帮助。
提前感谢。

您正在使用一个名为内部模块或名称空间的旧类型脚本功能(
导出模块A.B.C.Models
与导出名称空间A.B.C.Models相同)。您可以像这样导入和使用该类:

import * as c from './contracts'

c.A.B.C.Models.Activity
不过我建议不要这样做。不建议混合使用JS模块和名称空间。请参见以下主题:

名称空间可能永远不会消失,同时,您可能不应该使用它们,因为更好、更标准和更现代的模式通过使用模块而存在。如果您有需要使用名称空间的代码,那么您可以使用更多的功能,但大多数情况下您并不需要名称空间,因为我们现在有一个不同的概念组织模型,建议用于大规模JS(模块)

直接导出类,您将能够使用
import
语法:

//contacts.ts
export class Activity {
  prop1: number;
   ...
}
//usage.ts
import { Activity } from './contracts';

您正在使用名为内部模块或名称空间的旧类型脚本功能(
export module A.B.C.Models
export namespace A.B.C.Models
相同)。您可以像这样导入和使用该类:

import * as c from './contracts'

c.A.B.C.Models.Activity
不过我建议不要这样做。不建议混合使用JS模块和名称空间。请参见以下主题:

名称空间可能永远不会消失,同时,您可能不应该使用它们,因为更好、更标准和更现代的模式通过使用模块而存在。如果您有需要使用名称空间的代码,那么您可以使用更多的功能,但大多数情况下您并不需要名称空间,因为我们现在有一个不同的概念组织模型,建议用于大规模JS(模块)

直接导出类,您将能够使用
import
语法:

//contacts.ts
export class Activity {
  prop1: number;
   ...
}
//usage.ts
import { Activity } from './contracts';

尝试从“/合同”导入所有内容并查看console.log(all)中的内容我修改了我的问题,这是一个编译时错误。请尝试从“/contracts”导入所有内容并查看console.log(all)中的内容。我修改了我的问题,这是一个编译时错误。'./contracts'不被视为模块。我仍然有找不到模块的错误Woops,VS 2017让我将该文件作为项目的链接,这解释了为什么他无法解决该问题。@OlivierMATROT很高兴你解决了“添加为链接”的问题,这很难猜测。./合同不被视为模块。我仍然有找不到模块errorWoops,VS 2017让我将该文件作为项目的链接,这解释了为什么他无法解决该问题。@OlivierMATROT很高兴你解决了“添加为链接”的问题,这很难猜测。