Angular 5/Typescript: классы / интерфейсы, экспортируемые в пространство имен

У меня есть библиотека, которая построена с использованием машинописного текста и скомпилирована с помощью Angular 5 compiler. Теперь есть несколько классов / интерфейсов, которые определены внутри пространства имен.

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

Когда я компилирую этот код с угловым компилятором 5 ngc, он генерирует файл filename.metadata.json, который содержит значение [null].

И когда я использую эту библиотеку в своем приложении Angular 5, она выдает ошибку для этого нулевого файла.metadata.json.

TypeError: Невозможно прочитать свойство 'version' из null

Примечание: это работало с Angular 4.3.3. Также, когда я использую компилятор машинописного текста tsc, он даже не генерирует файл.metadata.json. Отсюда нет ошибок.

1 ответ

Решение

В выпуске Angular 5.1.2 команда Angular исправила проблему в компиляторе. Согласно их исправлению, они больше испускают недействительные файлы.metadata.json. Следовательно, для файлов, которые содержат только вложенные пространства имен, файлы ".metadata.json" не создаются.

Ссылка: https://github.com/angular/angular/issues/20479

Другие вопросы по тегам