2016-08-28 3 views
1

Angular2 2.0.0-rc.5にアップデートしてもブラウザで警告は表示されませんが、AOTをngc -pコマンドでコンパイルすると、エラーを流れる:ここAngular2 AoT ngcコンパイラ(RC5を使用)を使用して 'プロパティを読み取れません'タイプを取得します

enter image description here

は私のプロジェクトhttps://github.com/beginor/learning-angular2

+0

これはngcのバグです。この問題を追跡するために、次のバグを作成しました:https://github.com/angular/angular/issues/12020 – chuckj

答えて

5

はあなたのコードでデフォルトの輸出を使用しないでくださいです:

// somefile.ts 
export default function (...) { 
    ... 
} 
... 
// some-other-file.ts 
import whatevar from './somefile'; 

使用明示的な名前の代わりに

// somefile.ts 
export function whatevar(...) { 
    ... 
} 
... 
// some-other-file.ts 
import { whatevar } from './somefile'; 

AOTは、(特に)、デフォルトの輸出と互換性がありません。 しかし、他の非互換性とは異なり、これは最も秘密のエラーメッセージを生成します。

+1

あなたは私の人生の何時間も節約しました!私はこのエラーメッセージを解決することができました: 'ngc:TypeError:私のIonic2 rc0プロジェクトで、未定義のプロパティ 'kind'を@angle \ tsc-wrapped \ src \ collector.js:34:41)'読み込めませんでした。ありがとう。 – petvoj

+0

素晴らしい答え。 :)幸運にも私はデバッグを開始する前にこれを見つけました。 –

2

これらのエラーはすべてAoTに関連しています。このブログ記事では、コード内の変更点について説明します。

Making your Angular 2 library statically analyzable for AoT

  1. のconstラムダ=>エクスポート機能
  2. デフォルトのエクスポート=>
  3. プライベート、保護されたアクセサは、テンプレート
  4. 動的コンポーネントテンプレートからアクセスするすべてのメンバーのために公衆に変更する必要があり、輸出命名=>スタティックテンプレート
  5. moduleIdはtemplateUrlを持つコンポーネントに設定する必要があります
関連する問題