Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

Looks like Angular Ivy not ready yet. I'm trying to build my project using ivy which is the main idea for Angular 9. Many of libraries are not compatible with this feature, one of these library is @angular/flex-layout. Material and service-worker have the same problem as well.

After using ng build --prod --aot -c=production script to build my project I got:

                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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>; 

The error longer than what I wrote above, I took my time to have a good search for this issue, nothing on the table but disabling ivy which is not a good option.

like image 924
Yazan Mehrez Avatar asked Mar 28 '20 06:03

Yazan Mehrez


1 Answers

Fortunately, Angular 9.1 has been released and the problem solved. After upgrading to 9.1 (by running ng update @angular/cli @angular/core) I deleted my node_modules and reinstall it again. Then I upgraded my typescript from 3.7.5 to 3.8.3. Now the ngcc is working fine and I have no errors after building.

For more info: Angular Version 9.1

like image 106
Yazan Mehrez Avatar answered Sep 16 '22 14:09

Yazan Mehrez