Angular 9 Ivy-ジェネリック型 'ɵɵFactoryDe​​f'には2つの型引数が必要です


17

Angular Ivyはまだ準備ができていないようです。Angular 9の主なアイデアであるivyを使用してプロジェクトをビルドしようとしています。多くのライブラリはこの機能と互換性がなく、そのうちの1つは@angular/flex-layoutです。資材とサービスワーカーにも同じ問題があります。

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

エラーは上記で書いたものよりも長く、時間をかけてこの問題を適切に検索しました。表には何もありませんが、アイビーを無効にすることは適切なオプションではありません。

回答:


13

幸い、Angular 9.1がリリースされ、問題は解決しました。9.1にアップグレードした後、node_modulesを削除して再インストールしました。次に、typescriptをからにアップグレードし3.7.5ました3.8.3。これでngccは正常に動作し、ビルド後にエラーは発生しません。

詳細情報:Angularバージョン9.1


完全なpostinstallコマンドは何ですか?それだけです"postinstall":"ngcc"か?
harishr

@harishrはい、「ngcc」です。アップグレードする場合は、エントリポイントを使用しないでください。ngccをご利用ください
Yazan Mehrez

私はまだ問題に直面しています...問題を解決するには9.0.5に戻さなければなりませんでした
harishr

1
はい、そうしました...他のすべてのパッケージでtypescriptを更新しました。node_modulesを削除してすべてを再インストールしましたが、それでも質問で述べたのとまったく同じエラーが発生します。グローバルキャッシュをクリアする必要がありますか?
harishr

1
はい、node_modulesを削除npm cache verifyして私のためにトリックを行いました
Mattijs
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.