Angular 5/打字稿:Classes/Interfaces 在命名空间内导出

Angular 5/Typescript: Classes/Interfaces exported within a namespace

我有一个用 typescript 构建并用 Angular 5 编译器编译的库。现在,很少有 classes/interfaces 是在命名空间内定义的。

export namespace A{
    export class C1 {
    }
    export interface I1{
    }
}

当我使用 angular 5 ngc 编译器编译此代码时,它生成包含 [null] 值的 filename.metadata.json 文件。

当我在我的 Angular 5 应用程序中使用这个库时,它给出了这个 null .metadata.json 文件的错误。

TypeError: Cannot read property 'version' of null

注意: 这是与 Angular 4.3.3 一起工作的。 此外,当我使用 typescript 编译器 tsc 时,它甚至不会生成 .metadata.json 文件。因此没有错误。

在 Angular 5.1.2 版本中,Angular 团队已修复编译器中的问题。根据他们的修复,他们不再发出无效的“.metadata.json”文件。因此,对于仅包含嵌套命名空间的文件,不会生成“.metadata.json”文件。

参考:https://github.com/angular/angular/issues/20479