2013-07-19 84 views
1

我想要獲得基本功能的JQuery和SignalR與Vs2012中的TypeScript一起工作,它已經很長時間了,以獲得Iam的位置。使用DefinitelyTyped @ GitHub中最新的JQuery和SignalR,我甚至無法讓它編譯,更不用說讓我的代碼編譯,而不用JQuery開始精簡併報告至少300個錯誤,首先是因爲必須從數字和那麼由於顯然似乎不受支持的泛型。TypeScript失敗運行操場示例

信息:

  • 我使用的是最新版本(0.9.0.1)打字稿
  • 我使用的是最新的DefinitelyTyped jQuery庫
  • 我」(沒有其他代碼,相同的結果測試)已經嘗試將TypeScript的構建選項設置爲ES5和ES3
  • 我試過使用其他版本的JQuery,沒有更好的結果。
  • 一切工作與基本的JavaScript沒有問題。
  • TypeScript可以編譯並生成基本的打字稿代碼。
  • TypeScript不能使用泛型編譯PlayGround示例,但可以編譯類示例而不使用泛型。
  • 底部的錯誤 - 無法發佈ss以便添加爲代碼。

-----------招待員泛型講座遊樂場例如------------------------

class Greeter<T> { 
    greeting: T; 
    constructor(message: T) { 
     this.greeting = message; 
    } 
    greet() { 
     return this.greeting; 
    } 
} 

var greeter = new Greeter<string>("Hello, world"); 

var button = document.createElement('button'); 
button.innerText = "Say Hello"; 
button.onclick = function() { 
    alert(greeter.greet()); 
} 

document.body.appendChild(button); 

----------- Greeter類 - 遊樂場例如------------------------

class Greeter { 
    greeting: string; 
    constructor(message: string) { 
     this.greeting = message; 
    } 
    greet() { 
     return "Hello, " + this.greeting; 
    } 
} 

var greeter = new Greeter("world"); 

var button = document.createElement('button'); 
button.innerText = "Say Hello"; 
button.onclick = function() { 
    alert(greeter.greet()); 
} 

document.body.appendChild(button); 

-----------我的代碼 - 不是它應該很重要------------------------

interface sandboxCommunication extends HubConnection { 
    addNewMessageToPage: Function; 
    newContosoChatMessage: Function; 
} 

interface SignalR { 
    chat: HubConnection; 
    sbconnection: sandboxCommunication; 
} 

class SandBox { 

    // Constructor 
    constructor() { 
      var sbconnection = $.connection.sbconnection; 
      // Declare a function on the chat hub so the server can invoke it   
      sbconnection.addNewMessageToPage = function (name, message) { 
       $('#messages').append('<li><strong>' + name 
      + '</strong>: ' + message + '</li>'); 
      }; 


      $.connection.hub.start().done(function() { 
       $("#broadcast").click(function() { 
        // Call the chat method on the server 
        sbconnection.newContosoChatMessage($('#msg').val()); 
       }); 
      }); 

      function connectionReady() { 
       $('#messages').append('<li><strong>' + "Server: " 
      + '</strong>: ' + "Connected" + '</li>'); 
      }; 

      $.connection.hub.error(function() { 
       alert("An error occured"); 
      }); 
      $.connection.hub.start() 
       .done(function() { 
        $.connection.hub.start().done(function() { 
       $("#broadcast").click(function() { 
        // Call the chat method on the server 
        sbconnection.newContosoChatMessage($('#msg').val()); 
       }); 
         }).done(connectionReady); 
       }) 
       .fail(function() { 
        alert("Could not Connect!"); 
       }); 

      $.connection.hub.url = 'http://localhost:56808/SBCHub' 
      $.connection.hub.start(); 
    } 
} 

--------------------錯誤--------------------------- ---

Error 1 Expected '{' D:\\.Sandbox\TypeScript\SandBox.ts 1 14 SandBox.ts 
Error 2 The name 'T' does not exist in the current scope D:\\.Sandbox\TypeScript\SandBox.ts 3 26 SandBox.ts 
Error 3 The name 'T' does not exist in the current scope D:\\.Sandbox\TypeScript\SandBox.ts 3 26 SandBox.ts 
Error 4 The name 'T' does not exist in the current scope D:\\.Sandbox\TypeScript\SandBox.ts 3 26 SandBox.ts 
Error 5 The name 'T' does not exist in the current scope D:\\.Sandbox\TypeScript\SandBox.ts 3 26 SandBox.ts 
Error 6 The name 'T' does not exist in the current scope D:\\.Sandbox\TypeScript\SandBox.ts 3 26 SandBox.ts 
Error 7 The property 'greeting' does not exist on value of type 'Greeter' D:\\.Sandbox\TypeScript\SandBox.ts 4 14 SandBox.ts 
Error 8 The property 'greeting' does not exist on value of type 'Greeter' D:\\.Sandbox\TypeScript\SandBox.ts 7 21 SandBox.ts 
Error 9 Operator '>' cannot be applied to types 'bool' and 'string' D:\\.Sandbox\TypeScript\SandBox.ts 11 15 SandBox.ts 
Error 10 Supplied parameters do not match any signature of call target D:\\.Sandbox\TypeScript\SandBox.ts 11 19 SandBox.ts 
Error 11 The name 'string' does not exist in the current scope D:\\.Sandbox\TypeScript\SandBox.ts 11 27 SandBox.ts 
Error 12 The property 'greet' does not exist on value of type 'bool' D:\\.Sandbox\TypeScript\SandBox.ts 16 19 SandBox.ts 

任何幫助將不勝感激! :-)

回答

1

看來你沒有運行TS 0.9.x(儘管你說了什麼)。我建議你卸載你當前的版本,然後,從這裏下載+安裝版本:http://www.microsoft.com/en-us/download/details.aspx?id=34790

+2

非常感謝:-)起初我很喜歡,沒辦法。但進一步調查比做一個tsc -version檢查,我發現Visual Studio有一箇舊的安裝,說明安裝程序沒有卸載或覆蓋,因爲它是通過添加管理器下載和安裝的。只要我通過插件管理器卸載它,它就自動註冊了新插件,而無需重新安裝它。 –