2016-11-11 37 views
2

我是新來的TypeScript和監控webApp的服務器上工作。我有一個方法應該將ping和端點的狀態保存到一個數組中。然後它應該根據該陣列中的條目確定服務器的狀態。該方法應該正常工作,我假設,但我想我不是以適當的方式初始化數組。如何在TypeScript中實例化一個應該包含字符串的數組?

setServersStatus() { 
    let allStatus: String[] = new Array(); // Here I get a Warning "Instantiation can be simplified" 
    for (let server of this.servers) { 
     if (server.restendpoints != null) { 
      for (let rest of server.restendpoints) { 
       switch (rest.status) { 
        case "OK": 
         allStatus.push("OK"); 
         break; 
        case "WARNING": 
         allStatus.push("WARNING"); 
         break; 
        case "ERROR": 
         allStatus.push("ERROR"); 
         break; 
        default: 
         console.log('status empty'); 
       } 
      } 
     } 
     if (server.ping != null) { 
      switch (server.ping.status) { 
       case "OK": 
        allStatus.push("OK"); 
        break; 
       case "WARNING": 
        allStatus.push("WARNING"); 
        break; 
       case "ERROR": 
        allStatus.push("ERROR"); 
        break; 
       default: 
        console.log('status empty'); 
      } 
     } 
     if (allStatus.indexOf('ERROR')) { 
      server.status = 'ERROR'; 
     } 
     else if (allStatus.indexOf('WARNING')) { 
      server.status = 'WARNING'; 
     } 
     else if (allStatus.indexOf('OK')) { 
      server.status = 'OK'; 
     } 
     allStatus.length = 0; 
    } 
} 

我也嘗試通過以下方式來初始化,但它沒有工作:

let allStatus = []; // Here it says "Variable allStatus implicitly has an any[] type" 

那麼如何正確的打字稿初始化數組?

回答

2

你可以聲明一個類型數組這樣

let allStatus: string[] = []; 

或類似這樣的

+1

這也適用於:'讓allStatus = [];' 我不過推薦第一個聲明。 – Matthias247

相關問題