2015-09-10 48 views
0

我正在按照教程在Angular2中構建路由https://www.youtube.com/watch?t=10&v=ZsGRiHSaOxM它顯示了使用.ts構建的部分頁面,並且每個文件都帶有伴隨.js文件。我使用atom-typescript編輯Atom編輯器將我的app.ts文件編譯爲app.js,但我在另一個目錄中編輯的部分頁面無法正常編譯。並非所有的打字稿文件都是使用原子打字稿編譯成js

當文件是homePage.ts時,控制檯錯誤是 - 無法找到homePage.js當文件是homePage.js時,控制檯錯誤是 - 行(意思是@Component是)上的意外令牌@。我在我的tsconfig中有「compileOnSave」:true,並且該文件位於頂級項目目錄中。

我試圖把fileGlob在tsconfig,從文檔,如下

"filesGlob": [ 
    "./**/*.ts", 
    "!./node_modules/**/*.ts" 
], 

沒有改變。

我compilerOptions是:

"compilerOptions": { 
    "charset": " UTF-8", 
    "declaration": false, 
    "diagnostics": true, 
    "emitDecoratorMetadata": true, 
    "module": "commonjs", 
    "noImplicitAny": false, 
    "noLib": false, 
    "removeComments": true, 
    "sourceMap": true, 
    "target": "es5", 
    "version": true 
}, 

我需要雙方的.ts和.js文件的所有組件,如果是這樣,我怎麼做與原子打字稿發生的呢?或者爲什麼我會得到意想不到的令牌@錯誤?

+0

約'@'是traceur問題的錯誤執行。你把它添加到你的項目中了嗎?在你的視頻中,這個人做到了。是的,你需要兩個文件:你在打字稿中編寫,編譯器將它轉換爲常規的JavaScript(這正是瀏覽器真正使用的)。 –

+0

檢查一下,這是一個啓動並運行Angular 2和Typescript的小型項目,由Angular團隊成員維護 - > https://github.com/pkozlowski-opensource/ng2-play.ts –

+0

Eric,謝謝。是的,我在index.html頁面中加入了其他腳本加載的traceur,如下所示 -

回答

3

或者爲什麼我得到了意外的標記@錯誤

你需要有experimentalDecorators設置爲true。所以:

"compilerOptions": { 
    "charset": " UTF-8", 
    "declaration": false, 
    "diagnostics": true, 
    "experimentalDecorators", true, 
    "emitDecoratorMetadata": true, 
    "module": "commonjs", 
    "noImplicitAny": false, 
    "noLib": false, 
    "removeComments": true, 
    "sourceMap": true, 
    "target": "es5", 
    "version": true 
}, 

FWIW這是裝飾是如何在打字稿編譯

+0

我把tsconfig改爲上面的,加上「compileOnSave」:true(同樣,它應該是「experimentalDecorators」:true,)經過多次嘗試Atom編譯併爲其中一個路由創建了.js文件。我創建了第二個部分頁面.ts文件,但我還沒有能夠讓Atom編譯它。我反覆得到Console錯誤 - 未找到partialPage2.js,當我在Atom中進行更改時,我沒有看到描述編譯狀態的黃色或綠色框。它發出,它說我沒有錯誤,但只是偶爾編譯。有什麼想法嗎?我可能有代碼錯誤,並會盡快審查。 –

+0

添加「experimentalDecorators」:true,修復意外令牌@錯誤,由於某種原因,atom-typescript每次都會編譯而不會出錯。謝謝。現在來解決我的路由器錯誤。 –