Angular 2: ngc 常見錯誤和解決辦法

假如你的 Angular 2 代碼已經能夠在調試環境下正常運行了,可是沒法經過 ngc 編譯 (或者是一些其餘須要編譯執行的任務,如 Ionic 2 的 ionic build android 命令等),你會發現一些很是抓狂的錯誤緣由。android

TypeError: cannot read property 'kind' of undefined

這是一個錯誤本體和描述沒有任何關係的實例,正以下文連接的原回答所說,es6

But unlike other incompatibilities, this one generates the most cryptic error message ever.segmentfault

這個錯誤的真實緣由是,因爲 Angular 的 AoT 的設定不兼容,你不能採用 default exports. 須要使用具名輸出。也就是promise

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

須要改成angular2

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

參見問題 http://stackoverflow.com/ques... 最高票答案和評論。ionic

Duplicate identifier 'Promise'

參見以前的問題 https://segmentfault.com/q/10... 。結果代表,不能使用 @types/es6-promise (typings install 我試了一下,貌似也不行,然而不肯定),而應該使用 TypeScript 內建的 Promise 定義。ide

另外 HTML 調用方法時,參數的數量和類型必須和 TypeScript 文件的方法簽名一致。ui

相關文章
相關標籤/搜索