Angular 9 Ivy - 通用类型 'ɵɵFactoryDe​​f' 需要 2 个类型参数

Angular 9 Ivy - Generic type 'ɵɵFactoryDef' requires 2 type argument(s)

看起来 Angular Ivy 还没有准备好。我正在尝试使用常春藤构建我的项目,这是 Angular 9 的主要思想。许多库与此功能不兼容,其中一个库是 @angular/flex-layout。 Material 和 service-worker 也有同样的问题

在使用 ng build --prod --aot -c=production 脚本构建我的项目后,我得到:

                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
node_modules/@angular/flex-layout/core/typings/media-trigger/media-trigger.d.ts:71:18 - error TS2314: Generic type 'ɵɵFactoryDef' requires 2 type argument(s).

71     static ɵfac: ɵngcc0.ɵɵFactoryDef<MediaTrigger>;
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
node_modules/@angular/flex-layout/extended/typings/show-hide/show-hide.d.ts:18:18 - error TS2314: Generic type 'ɵɵFactoryDef' requires 2 type argument(s).

18     static ɵfac: ɵngcc0.ɵɵFactoryDef<ShowHideStyleBuilder>;
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
node_modules/@angular/flex-layout/extended/typings/show-hide/show-hide.d.ts:49:18 - error TS2314: Generic type 'ɵɵFactoryDef' requires 2 type argument(s).

49     static ɵfac: ɵngcc0.ɵɵFactoryDef<ShowHideDirective>;

错误比我上面写的还长,我花时间好好搜索了这个问题,table 什么都没有,但禁用 ivy 不是一个好的选择。

幸好Angular9.1已经发布,问题解决了。升级到 9.1 后(通过 运行 ng update @angular/cli @angular/core)我删除了我的 node_modules 并重新安装。然后我将打字稿从 3.7.5 升级到 3.8.3。现在 ngcc 工作正常,构建后没有错误。

更多信息:Angular Version 9.1