2013-03-06 205 views
0

有兩個打字稿文件:打字稿編譯錯誤

  • 實現類客戶

export class Client { 
  • 一個導入模塊,並創建一個主文件的模塊一系列客戶

import c = module("client") 
//... 
class Server { 
    constructor() { 
     this.clients = new c.Client[]; 

編譯代碼似乎工作正常。但是,當我嘗試運行用的的NodeJS生成的JavaScript,它抱怨,有一個語法錯誤:

this.clients = new(); 

在客戶端有打字稿代碼了。但不是模塊,而是使用聲明路徑和--out編譯器標誌將所有內容編譯成一個.js文件。客戶端代碼中的數組創建時沒有問題。在JavaScript有

this.arr = new Array(); 

所以,很顯然,編譯器只是忘了添加指定一個數組與new()創建。我通過插入缺少的部分手動修復了錯誤。但是在對代碼和新編譯進行小改動之後,又出現了同樣的問題。 我使用的是打字稿版本0.8.3並通過npm進行安裝。我能做什麼 ?

回答

3

我假設你的類服務器定義的客戶是c.Client對象的數組,因此它實際上是這樣的:

class Server { 
    clients: c.Client[]; 
    constructor() { 
     this.clients = new c.Client[]; 
    } 
} 

我不知道爲什麼這個代碼在所有編譯,因爲它實際上是一個語法錯誤。它不適合我。

你混合了兩種不同的方式來聲明一個數組:new Array() and []。只是改變你的路線,你應該很好走:

this.clients = []; 
+0

有趣。在客戶端,完全相同的代碼工作正常。所以我總是假定語法是有效的。不幸的是,解決方案已經揭示或者產生了新的問題。那麼,這不是這個問題的範圍,我很樂意接受你的答案。我的+1 – lhk 2013-03-06 16:48:38