如何在TypeScript中实例化一个应该包含字符串的数组?

时间:2016-11-11 09:55:36

标签: arrays typescript

我是TypeScript的新手,并且在监控webApp的服务器上工作。我有一个方法,应该将ping和端点的状态保存到数组中。然后,它应根据该数组中的条目确定服务器的状态。我假设该方法应该正常工作,但我认为我没有以适当的方式初始化数组。

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"

那么如何在TypeScript中正确初始化数组?

1 个答案:

答案 0 :(得分:2)

你可以像这样声明一个类型化的数组

let allStatus: string[] = [];

或者像这样

let allStatus: Array<string> = [];